Visual Studio无法加载文件或程序集;也许缓存?

时间:2013-08-27 15:15:27

标签: c# visual-studio .net-assembly

当我运行单元测试以序列化为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)运行单元测试真是奇怪的部分,我没有收到任何错误消息 - 它有效。但当我使用自己的笔记本电脑(赢8)时,我不断收到错误消息。我不知道为什么。

我希望能找到你的解决方案。你的帮助意味着很多。感谢!!!

2 个答案:

答案 0 :(得分:3)

框架(XMLSerializer)生成的程序集dynamically

  

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

此外,这可能是normal behavior - 它是否阻止您的应用程序运行?

答案 1 :(得分:0)

  

即使我不需要那个dll

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

  

我想删除它。

在解决方案资源管理器中检入项目的参考。如果它们中的任何一个都有一个黄色三角形,这意味着它们无法找到(如果您实际上没有使用该引用,项目仍然可以编译并运行)。

  

是否可能在缓存中?

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

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