C# 如何使用它的短名称打开程序集(或者当只有一个短名称时如何获取强名称)

本文关键字:有一个 何获取 强名称 获取 程序集 何使用 或者 | 更新日期: 2023-09-27 17:56:16

我有两天的"谷歌搜索"和"msdning"。我拥有的所有信息都是如何获得短名称,如果您有强大的,加载了程序集或其他类似的东西。但是没有关于如何加载(或只是获取全名,使用它加载)程序集的信息,当你只有短名称时。Assembly.Load 想要 FullName,Assembly.LoadPartial 已被弃用并且不起作用。所以我有些困惑...

C# 如何使用它的短名称打开程序集(或者当只有一个短名称时如何获取强名称)

呵...这个问题很愚蠢...我尝试加载"System.Math"(选择它仅用于测试)作为程序集,但这是一个类......因此,当我尝试加载System.IO.Compresse时,它已成功加载。

Assembly a = Assembly.LoadWithPartialName("System.IO.Compression");
textBox1.AppendText( Environment.NewLine + a.GetName().Name );
我知道

这个问题已经很老了,但对于可能被谷歌引导到这里的其他人:

Assembly.Load 似乎也适用于短程序集名称(没有版本、区域性或公钥标记),至少就我而言。

另一种选择可能是:

Assembly assembly = AppDomain.CurrentDomain
    .GetAssemblies()
    .SingleOrDefault(assembly => assembly.GetName().Name == myAssemblyName);

请注意 Assembly.GetName 上的安全约束。