2011-07-07 36 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

相關問題