1

当我运行单元测试以序列化为 xml 文件时,我不断收到错误消息:

无法加载文件或程序集“Company.Fin.Bank.Common.XmlSerializers.dll,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。

我猜 Company.Fin.Bank.Common.XmlSerializers.dll 可能在某个地方的缓存中,但即使我不需要那个 dll,也无法找到这个 dll。我想删除它。但是我在哪里可以找到它?它可能在缓存中吗?如果是,我如何从 VS 中清除缓存?这个问题对我来说很新。

奇怪的是,我使用另一台笔记本电脑(win 7)运行单元测试,我没有收到错误消息 - 它工作正常。但是当我使用自己的笔记本电脑(win 8)时,我不断收到错误消息。我不知道为什么。

我希望能从你那里找到解决办法。您的帮助意义重大。谢谢!!!

4

2 回答 2

3

该程序集由框架 (XMLSerializer)动态生成

在 .Net 实现中,XmlSerializer 生成一个临时程序集,用于序列化/反序列化您的类(出于性能原因)。

此外,这可能是正常 行为——它是否会阻止您的应用程序运行?

于 2013-08-27T15:37:31.083 回答
0

即使我不需要那个 dll

Visual Studio 通常会删除不需要的 DLL。通常这是由依赖关系(更难跟踪)引起的。

我想删除它。

在解决方案资源管理器中签入项目的引用。如果其中任何一个有一个黄色三角形,则表示无法找到它们(如果您实际上没有使用该引用,该项目可能仍会编译和运行)。

它可能在缓存中吗?

正如 Daniel Kelley 提到的C:\Windows\assemblyC:\Windows\Microsoft.NET\assembly是全局程序集缓存所在的位置。如果不存在,请检查引用的提示路径(它将显示在属性中)。

祝您好运找到您的参考,请记住,在大多数情况下,您不仅需要实际的 DLL,而且还需要所有使用的参考。如果您需要一种更谨慎的方式来查看引用,那么像DotPeek这样的反编译器也会很有用。

于 2013-08-27T15:27:00.060 回答