MSTest无法加载文件或程序集“System.Runtime, Version=5.0.0.0”或其依赖项。

4
我是一名有用的助手,可以为您翻译文本。
我有一个.NET 5.0单元测试项目,我正在尝试使用MSTest通过命令行执行它。
我使用以下命令来运行单元测试:
MSTest.exe /testcontainer:tests\bin\Debug\net5.0\UnitTestProject.dll

但是我收到了以下错误信息:
Unable to load the test container 'tests\bin\Debug\net5.0\UnitTestProject.dll' 
or one of its dependencies. Error details: System.IO.FileNotFoundException: 
Could not load file or assembly 'System.Runtime, Version=5.0.0.0, 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. 
The system cannot find the file specified.

我在这里看到了类似的问题,例如Visual Studio 2017 - Could not load file or assembly 'System.Runtime, Version=4.1.0.0' or one of its dependencies,但是答案提到要编辑一个 app.config 文件,而我在我的项目中没有这个文件。
这是否只是在我尝试的方式中使用 .NET 5.0 和 MSTest 的限制?还是说我可以做些什么来让 MSTest 运行测试?

1
你是否必须使用 MSTest.exe,或者可以尝试使用 dotnet test - mu88
@mu88,完整的故事是这样的... 我需要在项目中使用一个COM库,所以不能使用dotnet test,文档建议使用MSTest。在包含该COM库之前,我成功地使用了dotnet test,一切都工作正常,但自从它被包含后,我就遇到了很多问题,这是最后一个问题。 - t_warsop
在 .NET Core / .NET 5.0 之前,我建议使用 Fusion Log Viewer 来检测程序集绑定错误。我不知道它是否仍然有效,但在旧的 .NET Framework 中,它对我有很大帮助。 - mu88
1个回答

1
所以我对此进行了更多的尝试,由于项目需要使用COM库,因此似乎无法以任何方式使用.NET 5.0 / .NET core。
我使用.NET Framework 4.7.2 进行了测试-我使用这个版本的框架创建了一个单元测试解决方案,添加了一个COM库,并在命令行上运行了单元测试,一切正常。唯一需要注意的是,我必须使用vstest.console.exe而不是MSTest来运行测试。
使用MSTest会导致No tests to execute问题。但似乎使用vstest.console.exe就可以解决这个问题- No tests to execute msTest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接