TFS构建工作流和MSBuild的输出序列

时间:2012-10-03 01:24:07

标签: deployment msbuild tfs2010 msdeploy

我正在修改复制的构建过程模板BuildAndDeploy.xaml以包含InvokeProcess活动。此活动将运行_PublishedWebsites\ProjectName_Package\ProjectName.deploy.cmd以将Web应用程序部署到QA服务器。最终,我会为Web场中的每个服务器多次运行ProjectName.deploy.cmd。一切都可以正常工作,但通过TFS构建代理,_PublishedWebsites文件夹及其内容创建得太晚了。我的第一次尝试是在InvokeProcess序列中添加Compile the Project活动作为最后一步。然后我在“If Not DisableTests”之后移动了它。要进行故障排除我在BuildDetail.DropLocation文件夹中运行dir / s命令,它始终只输出logs文件夹而不输出任何其他内容。我还手动验证了编译输出和_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,并且Web部署可以顺利运行。

1 个答案:

答案 0 :(得分:2)

BuildDetail.DropLocation\_PublishedWebsites是在活动Revert Workspace and Copy Files to Drop Location中创建的,该活动位于“外部Try Compile, Test, and Associate Changesets and Work Items的终点”中。查找此文件的适当位置为BinariesDirectory\_PublishedWebsites,而不是BuildDetail.DropLocation\_PublishedWebsites。该文件夹和所有文件都是由MSBuild活动本身创建的。