如何确定GAC程序集的最新版本号

时间:2009-10-12 21:18:34

标签: c# .net-2.0 gac version-numbering

我正在尝试为我的应用程序创建诊断日志,该日志将显示GAC中安装的程序集的最新版本号。例如,GAC中有相同程序集的两个版本:foo.dll版本1.0.0.0和foo.dll版本2.0.0.0。我需要一个像下面这样的函数:

GetLatestGacVersion("foo.dll");  // returns "2.0.0.0"

任何人都知道最好的方法吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

最简单的是:

Assembly a = Assembly.LoadWithPartialName ("foo.dll");
return a.GetName ().Version

将自动从GAC为您提供最新版本的程序集。

请注意,方法已被弃用,原因很充分。从GAC请求非特定版本可能会造成很多麻烦。

如果你真的不知道自己想做什么,很难提供进一步的建议,但总的来说,如果你正在寻找一个特定的版本,你应该去探索它,而不是仅仅加载“某些东西”。

答案 1 :(得分:3)

Fusion API(fusion.dll)周围使用managed wrapper,您可以枚举GAC中的程序集,按名称和版本顺序对其进行过滤。