You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ReSharper执行Nunit测试时Environment.OSVersion识别OS版本错误如何解决?

问题原因

该问题本质是Windows系统的版本兼容机制导致的:对于未显式声明支持对应Windows版本的应用程序,系统会返回其兼容的最高旧版本号。.NET Framework 中的Environment.OSVersion接口直接读取系统返回的这个值,所以会出现版本不符的情况。
你遇到的差异是因为两个测试执行器的配置不同:Visual Studio 2019的内置测试执行进程自带了支持Windows 10的兼容声明,所以能拿到正确的10.0版本号;而ReSharper 2020.2的测试执行进程默认没有添加该声明,系统就会给它返回兼容Windows 8的6.2.9200版本号。

解决方案

  • 方案1(优先推荐,全场景生效):给测试项目添加应用程序清单,显式声明支持Windows 10
    操作步骤:右键测试项目→添加→新建项,选择「应用程序清单文件」,打开文件后找到<compatibility>节点,取消注释Windows 10对应的supportedOS配置行即可,保存后重新编译项目,不管用哪个测试执行器运行都能拿到正确的版本号。
  • 方案2:升级ReSharper到2021.1及以上版本,JetBrains已经在后续版本的测试执行程序中补加了Windows 10兼容声明,升级后直接运行测试即可返回正确版本。
  • 方案3(临时使用,不推荐):手动修改ReSharper安装目录下对应测试执行程序的manifest配置,添加Windows 10支持项,该配置会在ReSharper更新后失效。

内容的提问来源于stack exchange,提问作者Sebastian Osterbrink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:18:04