1

我有一个项目,我可以从 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 站点的选项(相当于发布设置对话框中的“站点/应用程序”框)与 2010 年相比)。

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

我一直在寻找有关这方面的信息,但我认为很难找到。

任何指针?

4

1 回答 1

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 在批处理文件中。

于 2011-07-07T12:07:34.817 回答