Environment.OSVersion 和 Resharper

Environment.OSVersion and Resharper

我为 .NET Framework 应用程序编写的一些 Nunit 测试遇到了一个小问题。 我使用 Visual Studio 2019 (16.11.3) 和 ReSharper 2020.2

我的应用程序检查当前使用的 OS 并对不同的 Windows 版本做不同的事情。这很好用。但是 Nunit 测试总是失败,因为当我使用 ReSharper 测试执行器 运行 时 Environment.OSVersion 检测到错误的 OS 版本。

以下针对 .NET Framework 项目的最小测试 class 如果由 ReSharper 执行则将失败,但如果 Visual Studio 文本执行器 运行 将其执行到 Windows 10 OS.

[TestFixture]
public class TestClass {

    [Test]
    public void SomeTest()
    {
        TestContext.WriteLine(Environment.OSVersion);
        Assert.AreEqual(10, Environment.OSVersion.Version.Major);
    }
}

VS 输出 Microsoft Windows NT 10.0.19042.0
ReSharper 输出 Microsoft Windows NT 6.2.9200.0

有人知道是否有隐藏选项或设置可以解释问题吗?

这听起来像是与 https://docs.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/5.0/environment-osversion-returns-correct-version 相关的内容,但我的应用程序明确测试了兼容模式并将其注册为错误。

有人遇到同样问题的简短参考:

在联系 ReSharper 支持后,这似乎发生了,因为版本 2020.2 中的 ReSharper 测试运行器的 AppManifest.xml 和受支持的列表 OS 在那里。
根据支持工程师的说法,它应该已经在 2021.1 版本中解决了,但我无法验证这一点,因为我还没有更新。