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

标签 c# asp.net enterprise-library nuget nuget-package

我已经用谷歌搜索了这个问题,但找不到问题的解决方案。

我的网站引用了 DAL(自定义 dll),后者引用了企业库数据访问组件。

我已经从 NuGet 包管理器 添加了企业库,当我尝试构建网站时弹出此编译错误:

Error 44 Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Common' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference

我已经尝试在 Enterprise Library dll 的 DAL 中设置 Copy Local = True 并且 dll 与 一起传输到网站的 Bin 目录>DAL dll,还是报错

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

最佳答案

问题是您正在使用的 DLL 与项目中引用的 DLL 不同。我不确定 list 中的区别是什么,但它可能是版本和/或公钥。

您有几件事要尝试:

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

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

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

关于c# - 无法加载文件或程序集 'Microsoft.Practices.EnterpriseLibrary.Common' 或其依赖项之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8431220/

相关文章:

c# - 从 Windows 窗体到 WPF

c# - "A connection attempt failed because the connected party did not properly respond after a period of time"使用 WebClient

log4net 与 MS 日志记录应用程序 block

asp.net - 使用 ASP.NET SDK 将文件上传到 S3 存储桶文件夹

asp.net - 超时已过。在从池中获取连接之前超时时间已过。企业图书馆

.net - MySQL缓存

c# - 如何写入内存地址?

c# - 为什么我会拾取外来字符以及如何删除它们?

c# - 批处理文件在服务器上不起作用但在本地工作

javascript - 链接颜色变化