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活动本身创建的