【问题标题】:System.IO.FileLoadExceptionSystem.IO.FileLoadException
【发布时间】:2008-12-09 10:30:15
【问题描述】:

我在使用 Enterprise Library 3.1 May 2007 版本时遇到此错误。我们正在开发一个产品,并且在 Subversion Trunk 目录下有一个通用的 lib 目录

\Trunk\Lib\ 我们将所有第三方 DLL 放入其中。在其中我们有 Microsoft\EnterpriseLibrary\v3.1,我们在其中复制了 \Program Files\Microsoft Enterprise Library May2007\bin 中的所有 dll。在其中一位开发人员在这台机器上安装源代码之前,一切都正常工作。在源代码安装结束时复制了一些 dll,一旦完成,他就无法再运行该项目了。他总是得到这个错误

'Microsoft.Practices.EnterpriseLibrary.Data, Version=3.1.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)'

这里有什么问题?我认为在安装源代码时,它只是应该构建所有内容并复制到源代码父目录中的 bin 目录中。此外,我们已将 Microsoft Enterprise Library May 2007\bin 目录中的 Dll 复制到我们的产品开发目录中,并在将 copylocal 标志设置为 true 的情况下引用到我们的项目中。

谁能帮帮我

RK

【问题讨论】:

    标签: c# .net enterprise-library fileloadexception


    【解决方案1】:

    当我针对 dll 的签名版本进行开发并部署在只有未签名版本可用的地方时,我曾经得到过这种情况。

    另外,fuslogvw.exe。每一个。时间。

    【讨论】:

      【解决方案2】:

      我认为错误在于开发人员已根据他拥有的未签名源代码编译来编译代码。

      确保他在编译他的代码之前添加对已签名 DLL 的引用。

      Microsoft.Practices.EnterpriseLibrary.Data,版本=3.1.0.0,文化=中性,PublicKeyToken=null

      应该是这样的:

      Microsoft.Practices.EnterpriseLibrary.Data,版本=3.1.0.0,文化=中性,PublicKeyToken=fa03fef243232

      【讨论】:

        【解决方案3】:

        也许您应该检查 dll 的 Assembly- 和 FileVersion。如果它们不匹配,则会发生此异常。

        【讨论】:

          【解决方案4】:

          阅读here 以开始进行程序集加载调试。

          简而言之,您需要查看 Fusion 日志以获取更多信息。

          对于“定位程序集的清单 名称为 [yourAssembly] 的定义 与程序集引用不匹配” 消息(用于 hresult FUSION_E_REF_DEF_MISMATCH, 0x80131040):融合日志会说 程序集的哪一部分引用 与找到的内容不匹配。它 将是程序集名称、文化、 公钥(或令牌)或版本(如果 找到的程序集是 强命名)。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多