我正在尝试为我的应用程序创建一个诊断日志,该日志将显示 GAC 中安装的程序集的最新版本号。例如,GAC 中有同一个程序集的两个版本:foo.dll 版本 1.0.0.0 和 foo.dll 版本 2.0.0.0。我需要如下函数:
GetLatestGacVersion("foo.dll"); // returns "2.0.0.0"
有人知道最好的方法吗?
谢谢!
我正在尝试为我的应用程序创建一个诊断日志,该日志将显示 GAC 中安装的程序集的最新版本号。例如,GAC 中有同一个程序集的两个版本:foo.dll 版本 1.0.0.0 和 foo.dll 版本 2.0.0.0。我需要如下函数:
GetLatestGacVersion("foo.dll"); // returns "2.0.0.0"
有人知道最好的方法吗?
谢谢!
最简单的是:
Assembly a = Assembly.LoadWithPartialName ("foo.dll");
return a.GetName ().Version
这将自动为您提供来自 GAC 的最新版本程序集。
请注意,该方法被弃用是有充分理由的。向 GAC 索要一个不特定的版本可能会引起很多麻烦。
在不知道你想做什么的情况下很难给出进一步的建议,但一般来说,如果你正在寻找一个特定的版本,你宁愿去探索它,而不是仅仅加载“一些东西”。
使用围绕(fusion.dll) 的托管包装器Fusion API
,您可以枚举 GAC 中的程序集,按名称过滤它们并按版本排序。