【发布时间】:2017-12-25 16:57:01
【问题描述】:
设置
我在服务器上安装了带有 Update 4 的 TFS 2015 和带有 Update 5 的 Visual Studio 2013 Professional。然后我在同一台服务器上安装了 TFS 构建代理(版本 1.95.4)。
我注意到构建代理的功能包括 MSBuild 和 VisualStudio(如预期的那样),但不包括 VSTest...所以我手动将 VSTest 作为功能添加到包含 vstest.console.exe 的文件夹中(是的,它在D盘):
D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
我创建了一个简单的构建定义,其中包含以下步骤:
- Visual Studio Build(设置为使用 2013 版)
- Visual Studio 测试(设置为使用 2013 版)
问题
当我排队构建时,代码构建得很好,但是当测试运行时我收到以下错误:
System.IO.FileNotFoundException:无法确定 vstest.console.exe 的位置
我尝试过的
我已经寻找解决方案,但找不到与我在版本方面遇到同样困境的任何人(使用 TFS 2015 和 VS 2013 Professional)。虽然,我确实尝试了针对不同 TFS/VS 版本组合提出的多种其他解决方案,但无济于事:
-
确保存在以下注册表项:
-
HKLM\Software\Wow6432Node\Microsoft\VisualStudio\12.0ShellFolder值为D:\Program Files (x86)\Microsoft Visual Studio 12.0\的条目
-
HKLM\Software\Wow6432Node\Microsoft\VisualStudio\12.0\EnterpriseTools\QualityTools-
InstallDir具有值D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow的条目
-
-
重新安装构建代理
- 添加“VSTest”作为环境变量
- 将 Visual Studio 测试任务设置为使用“最新版本”而不是“2013”
如何让代理识别/找到 vstest.console.exe?有什么我忽略的吗?
【问题讨论】:
-
输入注册表项后是否尝试重新启动构建代理服务器?如果没有,请尝试重新启动。另外,您可以尝试多次重启代理服务来识别添加的VStest。
-
是的,我尝试过重启服务器和代理重启。
-
将 ShellFolder 条目添加到 12.0 部分对我来说效果很好。你能提供你的注册表的截图吗?尝试运行this代码,检查是否得到对应的值。
-
我已经用注册表截图的链接更新了原始帖子。我运行了您提到的代码,这是字符串输出: D:\Program Files (x86)\Microsoft Visual Studio 12.0\
标签: visual-studio-2013 tfs tfsbuild tfs-2015 vstest.console.exe