当我运行单元测试以序列化为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)时,我不断收到错误消息。我不知道为什么。
我希望能找到你的解决方案。你的帮助意味着很多。感谢!!!
答案 0 :(得分:3)
框架(XMLSerializer)生成的程序集dynamically
在.Net实现中,XmlSerializer生成一个临时的 用于序列化/反序列化类的程序集(用于性能 原因)。
答案 1 :(得分:0)
即使我不需要那个dll
Visual Studio通常会删除不需要的DLL。通常这是由依赖性(更难以跟踪)引起的。
我想删除它。
在解决方案资源管理器中检入项目的参考。如果它们中的任何一个都有一个黄色三角形,这意味着它们无法找到(如果您实际上没有使用该引用,项目仍然可以编译并运行)。
是否可能在缓存中?
Daniel Kelley提到C:\Windows\assembly
和C:\Windows\Microsoft.NET\assembly
是全局程序集缓存所在的位置。如果不存在,请检查引用的提示路径(它将显示在属性中)。
祝您好运找到您的参考,请记住,在大多数情况下,您不仅需要实际的DLL,还需要所有使用的引用。如果你需要一种更谨慎的方式来查看引用,那么像DotPeek这样的反编译器也很有用。