MSTest不会下载不同版本的Newtonsoft.JSON.dll

时间:2013-05-22 14:21:07

标签: .net unit-testing json.net mstest

我们使用MSTest对我们的解决方案运行自动化测试。该解决方案中的一些项目针对.NET 3.5,并引用了Newtonsoft.JSON.dll版本4.0.8。其他项目是.NET 4.0的目标,并且引用了Newtonsoft.JSON.dll版本4.5.7的签名版本。当MSTest针对所有测试运行时,使用更高版本的Newtonsoft的测试失败:

  

System.IO.FileLoadException:System.IO.FileLoadException:无法加载文件或程序集“Newtonsoft.Json,Version = 4.5.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed”或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)。

但是如果我只运行运行更高版本DLL的测试,它们就会成功执行。我查看了Test / OUT目录并确认对于失败的运行,只有早期版本的Newtonsoft DLL存在,并且对于成功运行,只有DLL的更高版本存在。

那么,我怎么能1)强制MSTest每次复制正确的二进制文件,或2)强制MSTest并排引入相同二进制文件的不同版本?

TIA。

1 个答案:

答案 0 :(得分:0)

据我所知,在命令行中没有使用MSTest的解决方案。 MSTest将所有/ TestContainers与所有依赖项一起复制到/ Out目录中。在我的情况下,它首先找到了对旧版本的Newtonsoft.JSON.dll的引用,并将其复制过来。然后当它解决了其他Newtonsoft.JSON.dll的依赖关系时,它没有复制它。

我的解决方案是更改实用程序以便为每个程序集运行MSTEST实例,而不是一次为所有程序集运行它。