如何强制VS 2019的xUnit测试使用指定的testhost.exe?
解决testhost.exe版本切换及长路径支持问题
一、切换至对应.NET Framework版本的新版testhost.exe
如果你遇到VS默认调用.NET 4.0版本testhost.exe的情况,可以通过以下方法切换到匹配目标框架(如.NET 4.6.2+)的新版:
- 更新测试平台组件:打开Visual Studio,依次点击「工具」→「获取工具和功能」,确保安装了最新的「测试工具」组件;也可以在测试项目中更新
Microsoft.TestPlatformNuGet包到最新稳定版,这会同步更新本地的testhost.exe版本。 - 调整项目测试架构设置:右键测试项目→「属性」,在「生成」选项卡中设置「目标平台」为
x64;接着进入「测试」菜单→「测试设置」→「默认处理器架构」,选择x64。这样VS会自动匹配对应框架版本的x64 testhost.exe,而非默认的.NET 4.0版本。 - 手动指定testhost路径(兜底方案):如果自动匹配失效,你可以手动指定路径:右键测试项目→「属性」→「调试」,在「启动外部程序」中选择对应版本的testhost.exe。路径通常位于
C:\Program Files\Microsoft Visual Studio\<你的VS版本>\Enterprise\Common7\IDE\Extensions\TestPlatform\x64下,选择与目标框架匹配的最新版本。
二、关于testhost.exe缺少longPathAware标记的问题
即使成功切换到.NET 4.6.2+对应的testhost.exe,其清单文件中仍未添加
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>标记,这会导致长路径支持等.NET Framework新特性无法正常工作。
这属于微软测试平台的未修复问题,你可以通过以下方式提交反馈推动修复:
- 通过VS内置反馈渠道:点击VS右上角的「发送反馈」→「报告问题」,详细描述你的场景:使用.NET 4.6.2+测试项目,testhost.exe缺失longPathAware标记导致长路径测试用例失败,并说明perfview项目曾通过添加该标记解决同类长路径问题。
- 在官方仓库提交Issue:前往微软测试平台的官方代码仓库,提交Issue说明问题细节、测试环境和实际影响,帮助官方定位并修复该问题。
内容的提问来源于stack exchange,提问作者Alois Kraus
相关产品推荐
相关产品推荐

