NUnit-console 希望我安装 .NET 3.5



我正在尝试使用NUnit控制台在命令行上运行一些在Visual Studio中编写的NUnit测试。测试是使用 .NET 4.5 生成的。

要运行它们,我正在键入:

nunit3-console mytests.dll

我不断收到一个弹出窗口,告诉我"您 PC 上的应用程序需要以下 Windows 功能:.NET Framework 3.5(包括 .NET 2.0 和 3.0)。

我尝试强迫 NUnit 使用 4.5,方法是说

nunit3-console /framework:net-4.5 mytests.dll

但我得到同样的事情。

我尝试安装 .NET 3.5,但它无法安装(我猜是因为我不需要它,因为我已经有了 4.5)。

当使用ReSharper或NUnit GUI从Visual Studio运行时,测试运行良好...

我创建了一个非常简单的解决方案(尝试使用 .NET 4 和 .NET 4.5),其中包含对 NUnit 2.6.4 的 NuGet 引用和一个类(如下所示):

[TestFixture]
public class Class1
{
    [Test]
    public void MyTest()
    {
        Assert.Pass();
    }
}

我仍然收到同样的错误。

我该如何解决这个问题?

可执行文件

本身(nunit3-console)必须由C#编译器生成,以面向.NET Framework 2.x/3.x(用于所谓的兼容性)。因此,当它在纯 .NET Framework 4.x Windows 上运行时,您会看到Microsoft的其他兼容性功能,它总是提示并要求安装 .NET Framework 3.x(您必须通过程序 |添加/删除窗口功能)。它们都是荒谬的,因为人们应该很少使用.NET Framework 2.x/3.x(尽管Microsoft将继续支持.NET Framework 3.x作为Windows的一部分)。

要摆脱该提示,您可以启用 .NET Framework 3.5(它还为您提供了针对 .NET Framework 2.x/3.x 进行编译的位)。或者修改其nunit3-console.exe.config文件以使用<supportedRuntime>强制使用 .NET 4.x 加载此可执行文件。

我想NuGet版本包含适当的.exe.config,而MSI版本则不包含。您可以肯定地进一步分析。

最新更新