3

我刚刚解决了以下错误:

System.IO.FileLoadException:无法加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Common,Version=5.0.505.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。

奇怪的事情 - 当我制作发布版本时它似乎只是一个问题,虽然有点断断续续 - 我可以创建一个调试版本,问题有时会暂时消失。

原来我在项目 Microsoft.Practices.EnterpriseLibrary.Data.dll 中有一个企业库 dll 没有被使用,版本为 5.0.505.0,看起来它试图拉入 Microsoft 的 v. 5.0.505.0 .Practices.EnterpriseLibrary.Common,当这个 'Common' dll 的 v. 5.0.414.0 已经在项目中时。没有确定为什么这主要发生在发布模式下。

有助于追踪这一点并清楚地确定原因的方法是确定哪个 dll 将另一个 dll 拉入我的 Visual Studio 项目?我希望能够从导致问题的 dll 中走出来,看看包含它的 dll 是什么。这个答案:

找出 Visual Studio 决定将 DLL 复制到 bin 目录的原因

说可以使用 ildasm 或反射器,但是使用这些工具需要寻找什么以及如何使用?我用谷歌搜索了这个,但什么也没看到。

作为旁注,关于为什么切换到发布模式会导致我的问题的任何想法?我想知道这样做是否会导致 Visual Studio 尝试从某个地方提取 Microsoft.Practices.EnterpriseLibrary.Common 的发布版本,这是错误的版本,但这对我来说毫无意义,因为这是“第 3 方”(Microsoft ) 库已经处于发布模式,它没有解释间歇性,我不明白为什么将单个项目切换到发布模式会影响对外部库的引用。

4

0 回答 0