我正在尝试在C#Windows窗体应用程序(Visual Studio 2005)中运行一些单元测试,但出现以下错误:

System.IO.FileLoadException:未能加载文件或程序集“Utility,Version=1.2.0.200,Culture=neutral,PublicKeyToken=764d581291d764f7”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的异常:0x80131040)**位于x.Foo.FooGO()位于Foo.cs:line 123中的x.Foo.Foo2(String groupName_)位于FooTests.cs:line 98中的x.Foo.UnitTests.FooTests.TestFoo()**System.IO.FileLoadException:未能加载文件或程序集“Utility,Version=1.2.0.203,Culture=neutral,PublicKeyToken=764d581291d764f7”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的异常:0x80131040)

我查阅了我的参考资料,我只参考了实用程序版本1.2.0.203(另一个是旧版本)。

关于我如何找出试图引用此DLL文件的旧版本的内容,有什么建议吗?

此外,我想我的硬盘上甚至没有这个旧组件。是否有任何工具可以搜索此旧版本的程序集?


当前回答

我在使用内部包存储库时遇到了这个问题。我已经将主包添加到内部存储库中,但没有添加包的依赖项。确保将所有依赖项、依赖项的依赖项、递归等也添加到内部存储库中。

其他回答

检查project的财产中的licenses.licx,您将在那里发现错误的版本。。。。它在活跃的报告引用中对我有用

如果您正在使用Visual Studio,请尝试“清理解决方案”,然后重新生成项目。

在AssemblyInfo.cs文件中的AssemblyVersion中,使用固定版本号,而不是指定*。*将更改每次编译的版本号。这就是我这个例外的问题所在。

清理并重建解决方案可能不会替换输出目录中的所有dll。

我建议尝试将文件夹从“bin”重命名为“oldbin”或将“obj”重命名为”oldobj“

然后再次尝试建立您的解决方案。

如果您正在使用任何第三方dll,则需要在成功构建后将其复制到新创建的“bin”或“obj”文件夹中。

希望这对你有用。

我的问题是,在新版本中删除了旧dll的dployed。为了解决这个问题,我只选中了在发布时删除目标位置的其他文件的复选框。删除目标位置的其他文件