我正在尝试为我的应用程序创建诊断日志,该日志将显示GAC中安装的程序集的最新版本号。例如,GAC中有相同程序集的两个版本:foo.dll版本1.0.0.0和foo.dll版本2.0.0.0。我需要一个像下面这样的函数:
GetLatestGacVersion("foo.dll"); // returns "2.0.0.0"
任何人都知道最好的方法吗?
谢谢!
答案 0 :(得分:4)
最简单的是:
Assembly a = Assembly.LoadWithPartialName ("foo.dll");
return a.GetName ().Version
将自动从GAC为您提供最新版本的程序集。
请注意,方法已被弃用,原因很充分。从GAC请求非特定版本可能会造成很多麻烦。
如果你真的不知道自己想做什么,很难提供进一步的建议,但总的来说,如果你正在寻找一个特定的版本,你应该去探索它,而不是仅仅加载“某些东西”。
答案 1 :(得分:3)
在Fusion API
(fusion.dll)周围使用managed wrapper,您可以枚举GAC中的程序集,按名称和版本顺序对其进行过滤。