2011-07-07 34 views
1

我有一个项目,我可以从VS2010中部署到4个站点,2使用基于文件的部署和2使用Web部署。如何从VS2010 web部署到命令行msdeploy

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

我知道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部署代理,但我还没有。

我一直在寻找这方面的信息,但我觉得很难找到。

任何指针?

回答

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

+0

我知道这里有类似的问题,但直到写完这个问题之后我才找到它们。也许这至少会增加曝光度。 – Greg

相关问题