我有一个看似随机的问题,我的项目将使用不再存在的旧版DLL文件运行.有时会使用DLL文件的真实版本,有时会使用古老版本的DLL文件.谁知道Visual Studio从哪里获取这个DLL文件 - 它已经过时了!
我知道它正在使用旧的DLL文件,因为当应用程序运行时,我开始变得奇怪的'TypeLoadExceptions',抱怨方法不存在或没有实现.
以下操作有时会有所帮助,有时不会:
有时我执行上述所有步骤,它仍然使用DLL文件的旧副本.它隐藏在哪里?!
使用MSBuild的TeamCity服务器上存在同样的问题.当TeamCity尝试运行单元测试时,它使用旧的DLL文件.
现在,我知道我可以在web.config文件中使用程序集重定向,但DLL文件的版本号没有改变(我不打算更新它,所以它只停留在版本1).我不想只是为了解决这个问题而开始对DLL文件进行版本控制.我想知道我需要清除哪些特定的缓存,以便我可以继续开发.
shi*_*ipr 44
它隐藏在GAC中.在那里它可能无限期地存在.使用更新版本可能确实可以解决问题,但Visual Studio中存在一个与选择正确版本的DLL文件有关的突出错误.(如果DLL Hell还不够糟糕,Visual Studio团队会让它变得更糟!)
在GAC中查找它很棘手,我无法告诉您如何执行此操作,但是一旦旧版本从那里删除,将无法再次找到它.有时,即使您将编译器指向较新的版本(按日期),它也将使用旧版本,因为它具有相同的版本级别(按版本).这是它的错误.
| 归档时间: |
|
| 查看次数: |
42308 次 |
| 最近记录: |