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

TFS构建运行vstest遇System.Runtime.Remoting.RemotingException异常

解决TFS构建中vstest.console.exe执行x64单元测试的RemotingException问题

我之前也碰到过一模一样的情况——本地单元测试跑的好好的,到TFS构建里用vstest.console.exe执行x64测试就卡5分钟然后报远程对象断开的错误。结合你的报错信息和堆栈跟踪,给你几个针对性的解决方案:

1. 修正TestAdapterPath参数,指向正确的适配器目录

你当前的命令里/TestAdapterPath:\"m:\Workspace\"太宽泛了,vstest会在整个工作区里找测试适配器,很容易加载到版本不兼容的适配器dll,导致远程执行时通信失败。

应该指定到测试项目对应的MSTest.TestAdapter的具体目录,比如你的测试项目用NuGet包安装的适配器,路径大概是这样:

"D:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" m:\Workspace\MyApp\Tests\MyApp.Tests\bin\x64\Release\MyApp.Tests.dll /logger:trx "/TestAdapterPath:\"m:\Workspace\MyApp\Tests\MyApp.Tests\packages\MSTest.TestAdapter.2.2.10\build\_common\"" /InIsolation

注意替换成你实际的MSTest.TestAdapter版本号

2. 使用x64版本的vstest.console.exe

你现在用的是Program Files (x86)下的x86版本工具,而你的测试dll是x64的,跨平台启动测试进程很容易触发远程通信问题。换成x64版本的工具路径:

"D:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" m:\Workspace\MyApp\Tests\MyApp.Tests\bin\x64\Release\MyApp.Tests.dll /logger:trx /InIsolation

3. 强制启用隔离模式执行测试

添加/InIsolation参数,让测试进程在独立的隔离环境中运行,避免和vstest主进程的远程通信冲突——这是解决这类RemotingException最有效的办法之一,我当时就是靠这个解决的。

4. 检查构建服务器的环境配置

  • 确保构建服务器安装了Visual Studio 2015对应的Update补丁(因为你用的是VS14.0),以及完整的.NET 4.5.2运行时
  • 检查测试项目的部署设置:右键测试项目→属性→测试,关闭“启用部署”选项,部署目录的权限问题也可能导致远程执行失败

5. 简化命令排查问题

如果以上步骤还没解决,可以先简化命令,去掉不必要的参数,比如先去掉/Platform:x64和/TestAdapterPath,让vstest自动适配:

"D:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" m:\Workspace\MyApp\Tests\MyApp.Tests\bin\x64\Release\MyApp.Tests.dll /logger:trx /InIsolation

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:44:43