我有一个项目,我可以从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部署代理,我还没有。
我一直在寻找有关此事的信息,但我认为很难找到。
任何指针?
答案 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。