【发布时间】:2010-01-14 17:16:57
【问题描述】:
由于任何人都可以命名以“System”开头的程序集,因此检查“System”并不是一个令人满意的解决方案。
或者,如果这不可能,如何检查程序集中的模块?
【问题讨论】:
标签: c# .net vb.net assemblies
由于任何人都可以命名以“System”开头的程序集,因此检查“System”并不是一个令人满意的解决方案。
或者,如果这不可能,如何检查程序集中的模块?
【问题讨论】:
标签: c# .net vb.net assemblies
所有 .NET 程序集可能具有相同的公钥令牌:b77a5c561934e089
【讨论】:
这是一个移动的目标。例如,PrintForm 组件最初不是框架安装集的一部分,但它在 .NET 3.5 SP1 中。最好的办法是不要问这个问题,你总有一天会遇到麻烦。
【讨论】:
如果您不太关心安全性,那么您可以简单地检查路径
Console.WriteLine(typeof(File).Assembly.Location.EndsWith(@"Microsoft.NET\Framework64\v2.0.50727\mscorlib.dll"));
否则,如前所述,全名上的公钥令牌将是最安全的:
Console.WriteLine(typeof(File).Assembly.FullName.Contains("PublicKeyToken=b77a5c561934e089"));
【讨论】: