我们有几个使用msdeploy“手动”部署的web服务。我们从适当的TFS2010目录中的_PublishedWebsites\<<ProjectName>>_Package构建机器中获取部署包。
现在,我们希望使用一个部署工具来包装部署包,这样可以使安装人员更容易查看参数。
我们想要做的是构建单独的web服务部署包,让部署包位于部署工具构建的正确位置,然后让部署工具生成工具,并将先前构建的部署包复制到构建机器上的同一个Binaries放置文件夹中。
出于某种原因,这似乎是难以置信的困难。
我们试过的东西
$(TargetDir))在web服务项目的包/发布项目设置上创建包。Visual解释输入的变量并将其替换为开发机器的硬编码路径.这就是建造机器的原因。在机器上最终的结果是..。什么也没有;部署包仍然被发送到_PublishedWebsites\<<ProjectName>>_Package。/p:PackageLocation设置为TFS "Process“/ "Advances”部分中的MSBuild Arguments设置之一,以及/p:CreatePackageOnPublish=true /p:DeployOnBuild=true。所有这些都是生成错误:
MSB1008: Only one project can be specified. Switch: p:PackageLocation=$(BinariesRoot)\DeploymentFiles For switch syntax, type "MSBuild /help"
可能是因为构建生成了多个部署包。任何建议都要感谢!我们是不是走错路了?我们是否应该做一些类似于修改构建XAML来满足这种需求的事情(比如针对另一个问题的这一页表明 )?
发布于 2012-01-18 15:19:20
你可以考虑以下几种可能性:
1-像您所描述的那样更改TFS工作流以执行一些复制任务
2-创建一个按照标准打包步骤运行的MSBuild项目,将输出从_PublishedWebsites复制到您选择的某个位置。
3-在构建包以更改包放置位置时重写以下MSBuild参数:
<DefaultPackageOutputDir Condition="'$(DefaultPackageOutputDir)'==''">$(OutDir)[YourDesiredLocation]\$(DefaultMSDeployDestinationApplicationName)\Package</DefaultPackageOutputDir>请注意,您可以在
c:\program files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets最近,我在一个客户端实现了建议2,使用了自定义的MSBuild项目文件中#3中建议的重写,它工作起来很有魅力。
https://stackoverflow.com/questions/8616460
复制相似问题