我的任务是:
after TFS build
1)在服务器X停止文件Example.exe
2)从Drop Location复制文件到服务器X
3)在服务器X上运行全新版本的Example.exe
我正在更新DefaultTemplate。xaml在TFS 2012, Visual Studio 2012。我正在进入运行Do.bat脚本的InvokeProcess活动。My Build Agent将文件复制到服务器X,然后运行file X…Do.bat
Do.bat类似于
taskkill /F /IM Example.exe
start \%~p0Example.exe
所以,问题是Example.exe运行在构建代理上,而不是在服务器x上。
如何使构建代理在另一台服务器上运行可执行文件?额外的问题-是否值得使用bat文件作为脚本在TFS构建?
PsExec
是一个SysInternals工具,可以在远程计算机上运行进程。
PowerShell还可以远程启动进程。
至于你的额外问题,我通常发现它更值得自定义我的tfs构建编写构建活动在c#和/或使用内置的活动和自定义构建模板在xaml。不好玩,但我发现外部脚本遇到更多的权限问题,很难调试。我已经尝试过了,然后我通常会回到c#。