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

C# Visual Studio无法加载文件或程序集;也许是缓存?,c#,visual-studio,.net-assembly,C#,Visual Studio,.net Assembly,当我运行单元测试以序列化为xml文件时,我不断收到错误消息: 无法加载文件或程序集 'Company.Fin.Bank.Common.XmlSerializers.dll,版本=1.0.0.0, 区域性=中性,PublicKeyToken=null'或其依赖项之一。这个 系统找不到指定的文件 我猜Company.Fin.Bank.Common.XmlSerializers.dll可能在缓存中的某个位置,但找不到该dll,即使我不需要该dll。我想把它去掉。但是我在哪里能找到它呢?它可能在缓存中吗

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

无法加载文件或程序集 'Company.Fin.Bank.Common.XmlSerializers.dll,版本=1.0.0.0, 区域性=中性,PublicKeyToken=null'或其依赖项之一。这个 系统找不到指定的文件

我猜Company.Fin.Bank.Common.XmlSerializers.dll可能在缓存中的某个位置,但找不到该dll,即使我不需要该dll。我想把它去掉。但是我在哪里能找到它呢?它可能在缓存中吗?如果是,如何从VS中清除缓存?这个问题对我来说很新

奇怪的是,我使用了另一台笔记本电脑(Win7)来运行单元测试,没有收到任何错误消息——它工作了。但当我使用自己的笔记本电脑(Win8)时,我不断收到错误信息。我不知道为什么

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

即使我不需要那个dll

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

我想把它去掉

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

它可能在缓存中吗

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

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

程序集是由框架生成的(XMLSerializer)

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


此外,这可能是-它正在停止您的应用程序运行吗?

缓存指的是GAC吗?如果是,请查看C:\Windows\assembly,如果您使用的是.NET 4.0或更高版本,请查看C:\Windows\Microsoft.NET\assembly。如果您展开应用程序的“引用”文件夹,是否存在具有黄色三角形的程序集?这意味着它无法解决它。很可能其他笔记本电脑有这个DLL,而你的没有。找到它,复制它,并将其添加为要解析的引用。线索在错误消息中:)您的项目中是否有另一个库将该.dll作为依赖项?这里的答案可能会有所帮助?如果您从VS内部运行单元测试,并将VS配置为在引发异常时中断,则可能会发生这种情况。我希望Windows7笔记本电脑配置为在引发异常时不会中断。不需要dll,可以忽略异常,除非需要自定义序列化程序例程。+1。链接问题也有生成这种类型程序集的方法(如果由于某种原因必须修复异常-即由于对临时文件的某些权限而无法动态生成程序集)