我正在修改复制的构建过程模板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部署可以顺利运行。
答案 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活动本身创建的。