我在Visual Studio 2003中有一个遗留项目,是其他开发人员过去制作的。
此项目添加了一些参考。其中一个,让我们说myDLL.dll。它在VS中具有以下属性:
我构建解决方案并将其复制到生产计算机的目标路径中。 在目标中,我确保myDLL.dll与VS解决方案中的版本相同,即2.1.1.30200。
当我在生产机器中执行新版本的应用程序时,错误显示在我的应用程序日志中:
找到的程序集的清单定义,名称为' myDLL'才不是 匹配程序集引用。
我想在GAC中加载/安装了此DLL的先前版本,因此出现上述异常。
所以,我想知道GAC是否会不时(定期)自动清理,还是需要手动删除旧的DLL并安装新的DLL?
如果我需要删除旧的并在生产机器中安装新的,我该怎么办?
此外,如果我在生产机器中转到C:\ Windows \ assembly我可以找到DLL myDLL,但指示的版本是2.1.0.0而不是2.1.x.x.为什么?不应该是2.1.1.30200(对于新的)或2.1.1.20100(对于旧的)?
我在这里阅读了很多帖子,如下所示:
我找到的其他有趣的链接:
但我在GAC非常新手。
答案 0 :(得分:0)
您是否尝试将myDLL.dll放入输出程序所在的同一目录中?对于网络项目,它是" bin"目录,对于EXE,只需将它们放在同一个文件夹中即可。因此它将从应用程序目录加载,而不是从GAC加载。