从GAC加载的不同版本的程序集

时间:2014-09-15 14:33:33

标签: c# .net-assembly gac

我遇到了从GAC加载dll的典型问题。我的应用程序引用了一个名为MyAssembly.dll的DLL。它的汇编版本是1.1.6,文件版本是1.2.100,它被添加到GAC。 修复错误后,我将文件版本更新为1.2.110(但是二进制文件中没有更改的程序集版本相同)并部署到GAC并且应用程序正常工作。但出于某种原因,当我安装了以前的版本(Wise Installation,模糊的dll)时,我的应用程序停止了工作。它给出了一个缺失方法例外。如果我安装构建1.2.110(明智的安装,混淆的DLL)我的应用程序工作正常。 我不确定为什么这种奇怪的行为。在存在1.2.110的计算机上安装较低版本(1.2.100)时,GAC中的dll不会被覆盖。但是当我加载dll并读取其AssemblyFileVersion属性时,它表示1.2.100。但是FileVersionInfo.GetVersionInfo给了我1.2.110。 有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:-1)

使用ngen.exe实用程序安装程序集解决了该问题。