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

.NET Core 3.1自动化框架执行dotnet test报MSB4803错误求助

问题根因与解决方案

根因分析

Visual Studio 2019运行.NET Core项目时,会自动切换使用基于.NET Framework的MSBuild版本,该版本包含ResolveComReference任务,能够正常解析COM引用。而dotnet test命令默认调用的是**.NET Core版MSBuild**,这个版本移除了对COM引用相关任务的支持,因此执行时会抛出MSB4803错误。

解决方案

1. 本地命令行运行测试

放弃dotnet test,改用Visual Studio自带的.NET Framework版MSBuild构建项目,再用vstest.console.exe执行测试:

  • 构建项目命令(替换为你的VS安装路径和项目名称):
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe" YourTestProject.csproj /p:Configuration=Release
  • 运行测试命令:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" YourTestProject\bin\Release\netcoreapp3.1\YourTestProject.dll

2. Jenkins自动化运行配置

在Windows节点的Jenkins任务中,通过调用VS2019的工具链来执行测试:

  • 确保Jenkins节点已安装Visual Studio 2019(需包含"测试工具"组件)
  • 添加"执行Windows批处理命令"步骤,使用VS环境变量定位工具路径(无需硬编码路径):
    • 构建命令:
    "%VS160COMNTOOLS%..\..\MSBuild\Current\Bin\MSBuild.exe" YourTestProject.csproj /p:Configuration=Release
    
    • 测试命令:
    "%VS160COMNTOOLS%..\..\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" YourTestProject\bin\Release\netcoreapp3.1\YourTestProject.dll
    
  • 额外注意:Jenkins节点必须为Windows环境,且目标COM组件已在该机器上完成注册。

内容的提问来源于stack exchange,提问作者Abhishek Shrirang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:10:23