【发布时间】:2012-10-03 01:24:07
【问题描述】:
我正在修改复制的构建过程模板 BuildAndDeploy.xaml 以包含 InvokeProcess 活动。此活动将运行 _PublishedWebsites\ProjectName_Package\ProjectName.deploy.cmd 以将 Web 应用程序部署到 QA 服务器。最终,我会为网络场中的每台服务器多次运行ProjectName.deploy.cmd。手动一切正常,但通过 TFS 构建代理,_PublishedWebsites 文件夹及其内容创建得太晚了。我的第一次尝试是在“Compile the Project”序列中添加InvokeProcess 活动作为最后一步。然后我把它移到“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 Build 正确创建了包,我可以运行ProjectName.deploy.cmd 并且网络部署运行顺利。
【问题讨论】:
标签: deployment msbuild msdeploy