Deployment TFS构建工作流和MSBuild';s输出序列

Deployment TFS构建工作流和MSBuild';s输出序列,deployment,msbuild,msdeploy,Deployment,Msbuild,Msdeploy,我正在修改复制的生成过程模板BuildAndDeploy.xaml,以包含InvokeProcess活动。此活动将运行\u PublishedWebsites\ProjectName\u包\ProjectName.deploy.cmd将web应用程序部署到QA服务器。最终,我会为web场中的每个服务器运行多次ProjectName.deploy.cmd。手动操作一切正常,但通过TFS构建代理,\u PublishedWebsites文件夹及其内容创建得太晚。我的第一次尝试是将InvokeProc

我正在修改复制的生成过程模板
BuildAndDeploy.xaml
,以包含InvokeProcess活动。此活动将运行
\u PublishedWebsites\ProjectName\u包\ProjectName.deploy.cmd
将web应用程序部署到QA服务器。最终,我会为web场中的每个服务器运行多次
ProjectName.deploy.cmd
。手动操作一切正常,但通过TFS构建代理,
\u PublishedWebsites
文件夹及其内容创建得太晚。我的第一次尝试是将
InvokeProcess
活动添加到“
编译项目
”序列中作为最后一步。然后我将其移动到“
如果不禁用测试”
”之后。为了排除故障,我正在
BuildDetail.DropLocation
文件夹中运行dir/s命令,它总是只输出logs文件夹,而不输出其他任何内容。我还手动验证了编译后的输出和
\u PublishedWebsites
文件夹及其内容是在我希望运行
ProjectName.deploy.cmd
文件的位置之后创建的。工作流中的哪个位置最理想,并且可以保证将
ProjectName.deploy.cmd
文件和其他相关打包内容准备就绪

我遵循在中的已接受答案中给出的方法


构建放置位置是UNC路径,如果这很重要的话。MSBuild中使用的参数是
/p:DeployOnBuild=True
。TFS构建正确地创建了包,我可以运行
ProjectName.deploy.cmd
,web部署运行顺利。

构建细节.DropLocation\\u PublishedWebsites在活动
还原工作区中创建,并将文件复制到放置位置
,该位置位于外部
Try Compile,Test,并关联变更集和工作项
。查找此文件的适当位置是
BinariesDirectory\\u PublishedWebsites
,而不是
BuildDetail.DropLocation\\u PublishedWebsites
。该文件夹和所有文件都是由MSBuild活动本身创建的