Asp.net 模糊参考误差

Asp.net 模糊参考误差,asp.net,vb.net,visual-studio-2010,user-controls,Asp.net,Vb.net,Visual Studio 2010,User Controls,我间歇性地收到以下错误: 无法加载文件或程序集“com.mycompany.myapp”或其依赖项之一。找到的程序集清单与 程序集引用 我有一个Ajax用户控件库,我构建并编译成DLL。此项目引用了项目a(com.mycompany.myapp)。我的主web应用程序引用了此DLL,也引用了项目a。有时,当我尝试重建web应用程序时,会发生此错误。对项目A的引用似乎在DLL和web应用程序之间不同步 这只能通过重建DLL、从web应用程序中删除对DLL的引用、重新添加引用,然后重建web应用程序

我间歇性地收到以下错误:

无法加载文件或程序集“com.mycompany.myapp”或其依赖项之一。找到的程序集清单与 程序集引用

我有一个Ajax用户控件库,我构建并编译成DLL。此项目引用了项目a(com.mycompany.myapp)。我的主web应用程序引用了此DLL,也引用了项目a。有时,当我尝试重建web应用程序时,会发生此错误。对项目A的引用似乎在DLL和web应用程序之间不同步

这只能通过重建DLL、从web应用程序中删除对DLL的引用、重新添加引用,然后重建web应用程序来修复。有人能解释为什么会发生这种情况,以及如何防止出现这种错误吗


我正在寻找一个解决方案,将允许解决这个问题,以便我可以分发这个DLL,而不必担心它将需要重建和部署间歇性

这可能会对你有所帮助。。我以前也有同样的问题,我做的是,我删除了bin文件夹中的文件,然后重建应用程序,然后在主项目中添加了另一个项目,然后重建这两个项目


验证对项目A的引用(对于两个项目),并确保它们引用的是相同的部件和/或项目。(最常见的原因)

如果您的所有项目都在同一个解决方案中,则需要确保它们都是项目引用,而不是文件引用。您可以通过右键单击项目并转到properties=>references来检查这一点

在参考列表中,您将看到一个名为“copy local”的列。如果将其设置为false,则表示您是通过文件而不是项目引用它(构建DLL后不会更新DLL)。要解决此问题,请删除引用并再次添加它(确保从解决方案中引用它,而不是通过引用硬盘上的DLL)

如果不是所有项目都在同一个解决方案中,那么这是正常的行为。 假设您的Ajax控件库在解决方案之外

开始的情况是这样的:

  • Ajax引用了A(版本1)
  • 项目参考A(版本1)
  • 项目引用Ajax(版本1)
构建解决方案后(其中没有Ajax项目),将出现以下情况:

  • Ajax引用了A(版本1)
  • 项目参考A(版本2)
  • 项目引用Ajax(版本1)
如您所见,编译器突然需要对版本1和版本2的引用,因此这是不可能的,它会给您一个错误。这也解释了当您重建、删除DLL并再次添加DLL时,它为什么会工作

这里的解决方案是将Ajax项目添加到您的解决方案中,并每次重建它。

检查您的程序集“com.mycompany.myapp”在其AssemblyInfo.cs文件中是否没有AssemblyVersion属性,或者该版本是否没有导致自动生成版本的星号


只是想一想。

尝试重新加载程序集,将其从引用中删除,然后再次添加。这应该可以解决问题。