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

TeamCity Docker运行.NET 7测试遇MSB1021日志实例创建错误

问题原因及解决方案

核心原因

你遇到的MSB1021错误本质是:TeamCity自动注入的TeamCity.MSBuild.Logger.dll是基于**.NET Framework**开发的日志程序集,而你使用的mcr.microsoft.com/dotnet/sdk:7.0镜像仅包含.NET 7(跨平台的.NET Core后续版本)运行时,完全不支持.NET Framework程序集的加载——哪怕路径映射正确,容器内也没有能运行该日志程序集的环境,因此无法创建日志器实例。

可行解决方案

1. 改用Command Line运行器执行测试

放弃默认的.NET运行器,改用TeamCity的Command Line运行器手动执行dotnet test命令。这样TeamCity不会自动添加依赖.NET Framework的日志器参数,转而通过捕获控制台输出的TeamCity服务消息获取测试结果。

命令示例:

dotnet test /opt/buildagent/work/e6d03f2b6a0fbca2/MyProject.Tests/MyProject.Tests.csproj --framework net7.0 --configuration Release --logger "console;verbosity=normal"

2. 禁用.NET运行器的自动日志器注入

如果坚持使用.NET运行器,可在构建步骤的高级设置中找到“MSBuild logger”相关选项,取消自动注入配置;也可以通过设置环境变量TEAMCITY_DISABLE_MSBUILD_LOGGER=true,阻止TeamCity添加该日志器参数。

3. 更换含.NET Framework的镜像(仅Windows环境适用)

若你的TeamCity构建服务器是Windows系统,可改用包含.NET Framework的.NET SDK镜像(如mcr.microsoft.com/dotnet/sdk:7.0-windowsservercore-ltsc2022),这类镜像同时兼容.NET 7和.NET Framework环境,能正常加载TeamCity的日志程序集。注意Linux环境下此方案不可行,因为.NET Framework不支持Linux。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 19:05:15