如何为dotnet CLI安装TfsLogger扩展,解决TfsPublisher日志器找不到问题
解决dotnet CLI中TfsPublisher日志器找不到的问题
这个问题我之前也碰到过,核心原因是dotnet CLI自带的vstest工具链默认没有包含TfsPublisher日志器,而vstest.console.exe是Visual Studio完整测试工具集的一部分,自带了这个扩展。再加上你提到的版本差异(vstest.host.exe 15.7.1 vs dotnet vstest 15.7.0),也可能加剧了兼容性问题。下面给你几个可行的解决方案:
方案1:通过NuGet安装Tfs测试日志器扩展
这是最推荐的方式,尤其是在CI/CD环境中更容易维护:
- 首先,安装和你的dotnet vstest版本匹配的
Microsoft.TestPlatform.TfsLoggerNuGet包,比如你的dotnet vstest是15.7.0,就运行:dotnet add package Microsoft.TestPlatform.TfsLogger --version 15.7.0 - 安装完成后,你需要在运行测试命令时指定测试适配器路径(指向NuGet包的安装目录),或者确保包已经被添加到测试项目的依赖中。示例命令:
注意:路径要根据你实际的包安装位置调整。dotnet vstest "Mytest.dll" /logger:TfsPublisher;Collection="<TFSURL>";BuildName="<BuildName>";TeamProject="<Project>";Platform="AnyCPU";Flavor="Release"; /TestAdapterPath:./packages/Microsoft.TestPlatform.TfsLogger.15.7.0/lib/netstandard2.0
方案2:手动复制日志器文件到dotnet vstest的扩展目录
如果你更倾向于手动操作,可以从Visual Studio的测试工具目录复制所需文件:
- 找到Visual Studio安装目录下的TfsLogger相关文件,一般路径类似:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Extensions\Microsoft.VisualStudio.TestPlatform.Extensions.TfsLogger.dll,同时复制它的依赖文件(比如相关的*.dll) - 找到dotnet vstest的扩展目录,比如你的版本是15.7.0,路径大概是:
%USERPROFILE%\.dotnet\tools\.store\dotnet-vstest\15.7.0\dotnet-vstest\15.7.0\tools\netcoreapp2.1\any\Extensions - 将复制的文件粘贴到这个目录下,重新运行你的dotnet vstest命令即可。
方案3:升级dotnet vstest到与vstest.host.exe一致的版本
版本不一致可能导致兼容性问题,建议把dotnet vstest升级到15.7.1,和你的vstest.host.exe版本匹配:
- 运行升级命令:
dotnet tool update -g dotnet-vstest - 升级完成后,运行
dotnet vstest --version确认版本是否为15.7.1,此时大概率自带了TfsLogger扩展,直接运行原命令即可。
验证安装是否成功
不管用哪种方案,你都可以运行以下命令验证TfsPublisher是否被识别:
dotnet vstest /listloggers
如果输出中包含TfsPublisher,就说明安装成功了。
内容的提问来源于stack exchange,提问作者domueni
相关产品推荐
相关产品推荐

