我的任务是:
TFS 构建后
1) 在服务器 X 停止文件 Example.exe 上
2) 将文件从放置位置复制到服务器 X
3)在服务器X上运行全新版本的Example.exe
我正在 TFS 2012、Visual Studio 2012 中更新 DefaultTemplate.xaml。 我正在输入运行 Do.bat 脚本的 InvokeProcess 事件。
我的构建代理将文件复制到服务器 X,然后运行文件\X...\Do.bat
Do.bat 类似于
taskkill /F /IM Example.exe
start \\%~p0Example.exe
所以,问题是Example.exe正在构建代理上运行,而不是在服务器X上运行。
如何使构建代理在另一台服务器上运行可执行文件? 另一个问题 - 是否值得在 TFS Build 中使用 bat 文件作为脚本?
最佳答案
PsExec
是一个 SysInternals 工具,它将在远程计算机上运行进程。
PowerShell 还能够 launch a process remotely.
关于您的附加问题,我通常发现更值得自定义我的 tfs 构建,用 C# 编写构建事件和/或使用内置事件并在 xaml 中自定义构建模板。不好玩,但我发现外部脚本会遇到更多权限问题并且难以调试。我已经尝试过它们,然后我通常会回到 C#。
关于deployment - TFS Build后如何运行可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15152491/