我们有几个Web服务需要使用“msdeploy”手动部署。 我们从TFS2010构建机器中适当的“_PublishedWebsites\_Package”目录中获取部署包。
现在,我们想要将部署包与部署工具捆绑在一起,以使进行安装的人更容易看到参数。
我们想要做的是构建单独的Web服务部署包,使部署包在部署工具构建时落在正确的位置,然后让部署工具同时构建工具并将先前构建的部署包复制到构建机器上相同的“Binaries”下拉文件夹中。
由于某种原因,这似乎非常难以实现。
我们尝试过的事情
现在,我们想要将部署包与部署工具捆绑在一起,以使进行安装的人更容易看到参数。
我们想要做的是构建单独的Web服务部署包,使部署包在部署工具构建时落在正确的位置,然后让部署工具同时构建工具并将先前构建的部署包复制到构建机器上相同的“Binaries”下拉文件夹中。
由于某种原因,这似乎非常难以实现。
我们尝试过的事情
在Web服务项目的Package/Publish Web项目设置中,使用变量(例如
$(TargetDir)
)来设置创建包的位置。Visual Studio会解释输入的变量并将其替换为开发机器上的硬编码路径...这就是传递到构建机器的内容。在构建机器上的最终结果是...什么也没有;部署包仍然被发送到_PublishedWebsites\<<ProjectName>>_Package
。在TFS构建定义的“Process”/“Advances”部分的
MSBuild Arguments
设置中添加/p:PackageLocation
,以及/p:CreatePackageOnPublish=true /p:DeployOnBuild=true
。所有这些只是生成了错误:MSB1008: 只能指定一个项目。Switch: p:PackageLocation=$(BinariesRoot)\DeploymentFiles For switch syntax, type "MSBuild /help"
可能是因为构建生成了多个部署包。