我正在修改复制的构建过程模板BuildAndDeploy.xaml
以包含 InvokeProcess 活动。此活动将运行_PublishedWebsites\ProjectName_Package\ProjectName.deploy.cmd
以将 Web 应用程序部署到 QA 服务器。最终,我将为ProjectName.deploy.cmd
网络场中的每台服务器运行多次。手动一切正常,但通过 TFS 构建代理,_PublishedWebsites
文件夹及其内容创建得太晚了。我的第一次尝试是InvokeProcess
在“”序列中添加活动Compile the Project
作为最后一步。然后我把它移到“ If Not DisableTests
”之后。为了排除故障,我在BuildDetail.DropLocation
文件夹中运行 dir /s 命令,它始终只输出日志文件夹,不输出其他任何内容。我还手动验证了编译的输出和_PublishedWebsites
文件夹及其内容是在我想要运行的点之后创建的ProjectName.deploy.cmd
文件。工作流中的哪个位置是理想的并保证ProjectName.deploy.cmd
准备好文件和其他相关的打包内容?
我正在遵循TFS2010 Build Definition to Deploy to multiple servers中接受的答案中给出的方法。
如果重要的话,构建放置位置是一个 UNC 路径。MSBuild 中使用的参数是/p:DeployOnBuild=True
. TFS 构建正确地创建了包,我可以运行ProjectName.deploy.cmd
并且 web 部署运行顺利。