TLDR:如果您对测试项目使用 *.runsettings 文件,请尝试删除 TargetFrameworkVersion 节点
我有类似的问题,但使用 .Net Core
测试运行将使用为框架 .NETFramework、Version=v4.0 和平台 X64 构建的 DLL。以下 DLL 与框架/平台设置不匹配。MyProject.Tests.dll 是为 Framework .NETCoreApp,Version=v3.1 和 Platform AnyCPU 构建的。
原来还有另一个问题。对于我的其他 .NET Framework 测试项目,我定义了 *.runsettings 文件
![选择运行设置文件](https://i.stack.imgur.com/t7pXO.png)
在这个文件中我有
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- Parameters used by tests at runtime -->
<TestRunParameters>
<Parameter name="ConnectionString" value="Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True" />
</TestRunParameters>
<RunConfiguration>
<!-- Framework35 | [Framework40] | Framework45 | FrameworkCore10-->
<TargetFrameworkVersion>Framework40</TargetFrameworkVersion>
</RunConfiguration>
</RunSettings>
基于https://docs.microsoft.com/en-us/visualstudio/test/configure-unit-tests-by-using-a-dot-runsettings-file?view=vs-2019的 TargerFrameworkVersions 支持的值为
:
FrameworkCore10 用于 .NET Core 源,FrameworkUap10 用于基于 UWP 的源,Framework45 用于 .NET Framework 4.5 及更高版本,Framework40 用于 .NET Framework 4.0,Framework35 用于 .NET Framework 3.5。
但是对于 Core 3.1,FrameworkCore10 不起作用!
所以我完全删除了节点TargetFrameworkVersion