无法加载文件或程序集"Microsoft.Practices.EnterpriseLibrary.Common"或其依赖项之一

Nav*_*utt 16 c# asp.net enterprise-library nuget nuget-package

我搜索谷歌这个,无法找到问题的解决方案.

我的网站引用了引用企业库数据访问组件的DAL(自定义DLL).

我已经添加了企业库NuGet Package Manager,当我尝试构建网站时,会弹出以下编译错误:

错误44无法加载文件或程序集"Microsoft.Practices.EnterpriseLibrary.Common"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配

我已经尝试Copy Local = True在DAL中设置Enterprise Library dlls并且dll被转移到网站的Bin目录中DAL dll,但仍然会弹出错误.

任何人都可以指导我这....

com*_*ech 10

问题是您正在使用的DLL和项目中引用的DLL是不同的.我不确定清单中的差异是什么,但它可能是版本和/或公钥.

你有几件事要尝试:

  1. 在项目中打开DLL引用的属性,并将Version Specific设置为false.

  2. 删除引用,从bin文件夹中删除DLL,然后重新添加引用.

  3. 您的GAC中也可能有不同/不正确的版本.为了确保您始终使用特定的已知版本创建相对于项目目录的程序集文件夹,将dll复制到该目录,并在程序集目录中添加对DLL的引用,而不是在GAC或其他地方添加在你的机器上.这将确保仅使用您为应用程序定位的特定版本,而不是稍后在您的计算机上更新的任何版本.

  • 设置`Version Specific = true`解决了这个问题.我认为这是因为在我的系统上安装了多个版本的`EnterpriseLibrary`并创建了另一个目录并在那里放置dll可能会产生相同的效果...... (2认同)