jas*_*son 9 vb.net asp.net user-controls visual-studio-2010
我间歇地得到以下错误:
无法加载文件或程序集"com.mycompany.myapp"或其依赖项之一.定位的程序集清单与程序集引用不匹配.
我有一个Ajax用户控件库,我构建并编译为DLL.该项目引用了项目A(com.mycompany.myapp).我的主Web应用程序引用了此DLL,并且还引用了项目A.有时,当我尝试重建我的Web应用程序时会发生此错误.看起来项目A的引用在DLL和Web应用程序之间变得不同步.
这只能通过重建DLL,从Web应用程序中删除对DLL的引用,重新添加引用,然后重新构建Web应用程序来解决.任何人都可以解释为什么会发生这种情况以及如何防止此错误出现?
我正在寻找一个解决方案,可以解决这个问题,这样我就可以分发这个DLL而不用担心它需要间歇地重建和部署.
如果您的所有项目都位于同一解决方案中,则需要确保它们都是项目引用而不是文件引用。您可以通过右键单击项目并转到属性 => 引用来检查这一点。
在您的参考列表中,您将看到名为“复制本地”的列。如果将其设置为 false,则意味着您通过文件而不是项目引用它(在构建 DLL 后不会更新 DLL)。要解决此问题,请删除引用并再次添加(确保从解决方案中引用它,而不是通过引用硬盘驱动器上的 DLL)。
如果您没有将所有项目都包含在同一解决方案中,那么这是正常行为。假设您的 Ajax 控件库不在解决方案之内。
开始的情况是这样的:
构建解决方案后(其中没有 Ajax 项目),您将遇到以下情况:
正如您所看到的,编译器突然需要引用 A 版本 1 和版本 2,因此这是不可能的,并且会给出错误。这也可以解释为什么当您重建并删除 DLL 并再次添加它时它会起作用。
这里的解决方案是将 Ajax 项目添加到您的解决方案中并每次重新构建它。