2

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

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

有人知道最好的方法吗?

谢谢!

4

2 回答 2

4

最简单的是:

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

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

请注意,该方法被弃用是有充分理由的。向 GAC 索要一个不特定的版本可能会引起很多麻烦。

在不知道你想做什么的情况下很难给出进一步的建议,但一般来说,如果你正在寻找一个特定的版本,你宁愿去探索它,而不是仅仅加载“一些东西”。

于 2009-10-12T21:36:44.240 回答
3

使用围绕(fusion.dll) 的托管包装器Fusion API,您可以枚举 GAC 中的程序集,按名称过滤它们并按版本排序。

于 2009-10-12T21:33:44.720 回答