如何从VS2010 Web部署到命令行msdeploy

时间:2011-07-07 10:29:08

标签: visual-studio-2010 command-line msdeploy webdeploy

我有一个项目,我可以从VS2010内部署到4个站点,2个使用基于文件的部署,2个使用Web部署。

无聊地坐着等待一个接一个地部署,所以我想自动化这个。在命令行上。

我知道msdeploy,但是我看不出如何告诉它在.Publish.xml中的相同选项,或者让它使用保存在那里的设置。

我想要的是一个类似于

的批处理文件
msbuild Project.sln /p:Configuration=Config1
magicDeployingProgram Project.sln /p:PublishXMLConfigurationName="Server1DeploySettings"
msbuild Project.sln /p:Configuration=Config2
magicDeployingProgram Project.sln /p:PublishXMLConfigurationName="Server2DeploySettings"
msbuild Project.sln /p:Configuration=Config3
magicDeployingProgram Project.sln /p:PublishXMLConfigurationName="Server3DeploySettings"
msbuild Project.sln /p:Configuration=Config4
magicDeployingProgram Project.sln /p:PublishXMLConfigurationName="Server4DeploySettings"

或同等的。我不介意重新指定msdeploy的设置,但是当我尝试这个时,我找不到指定要部署到哪个IIS站点的选项(相当于发布设置对话框中的“站点/应用程序”框) VS2010)。

最后,我不介意它是否只是Web部署,我的基于文件的部署是懒惰的产品,我可以在适当的盒子上设置Web部署代理,我还没有。

我一直在寻找有关此事的信息,但我认为很难找到。

任何指针?

1 个答案:

答案 0 :(得分:4)

好的,我想我已经找到了。 msbuild可以做到。

C:\path\to\project>msbuild 
     /p:configuration="Config1" 
     /p:DeployOnBuild=True 
     /p:DeployTarget=MsDeployPublish 
     /p:CreatePackageOnPublish=True 
     /p:DeployIISAppPath="Default Web Site or whatever" 
     /p:MsDeployServiceUrl="http://machine/MSDEPLOYAGENTSERVICE"
     /p:AllowUntrustedCertificate=true 
     /p:UserName=DOMAIN\user
     /p:Password=thePassword
     /p:MsDeployPublishMethod=RemoteAgent 
     /p:SkipExtraFilesOnServer=true

批处理文件中的x4。