我的任务是:
在TFS构建之后
1)在服务器X上停止文件Example.exe
2)将文件从Drop Location复制到服务器X
3)在服务器X上运行一个全新版本的Example.exe
我正在更新TFS 2012,Visual Studio 2012中的DefaultTemplate.xaml。 我正在输入运行Do.bat脚本的InvokeProcess活动。
我的Build Agent将文件复制到服务器X,然后运行文件\ X ... \ Do.bat
Do.bat就像是
taskkill /F /IM Example.exe
start \\%~p0Example.exe
因此,问题是Example.exe在Build Agent上运行,而不是在服务器X上运行。
如何让构建代理在另一台服务器上运行可执行文件? 另外一个问题 - 是否值得将bat文件用作TFS Build中的脚本?
答案 0 :(得分:2)
PsExec
是一个SysInternals工具,可以在远程计算机上运行进程。
PowerShell也可以launch a process remotely.
至于你的其他问题,我一般认为更有价值的是定制我的tfs构建在C#中编写构建活动和/或使用内置活动并在xaml中自定义构建模板。不好玩,但我发现外部脚本会遇到更多权限问题并且难以调试。我已经尝试过了,然后我通常会回到C#。