2012-08-31 109 views
12

對於VS2010和之前我利用Web部署項目(WDP)幫助打包我的網站進行生產部署。我有一個MSBuild腳本,它在發佈模式下編譯解決方案。該產品的輸出是由WDP編譯和清理的生產就緒網站文件。從msbuild爲visual studio 2012調用發佈

我看到2012年WDP已被刪除,並且在Web應用程序的屬性中創建了一個新選項卡。這些選項是相同的,但是現在通過發佈選項來完成此調用(在您剛剛在發佈模式下編譯之前)。

所以問題是這樣的。從MSBuild腳本中,我如何調用發佈操作?我發現了一些舊的帖子...

msbuild /target:publish 

會做的伎倆。但是,這似乎並沒有在2012年

同樣的工作,我想在我的MSBuild任務...

<MSBuild Properties="Configuration=Publish;" 
     StopOnFirstFailure="true" 
     Projects="$(BuildDirectory)\MySolution.sln"></MSBuild> 

...但msbuild剛剛報道「不明配置」。

我該如何讓msbuild從命令行運行發佈選項?

+0

嘗試:http://stackoverflow.com/q/3097489/1162102 –

回答

3

我無法讓發佈運行,但看着從Visual Studio的輸出我想我已經找到了一個替代解決方案。發現obj \ Release \ AspnetCompileMerge文件夾有一個可部署且乾淨的項目版本。它包含與最終輸出文件夾相同的文件。

我也不得不改變我的MSBuild腳本包括DeployOnBuild選項...

<MSBuild Properties="Configuration=Release;DeployOnBuild=True;" 
     StopOnFirstFailure="true" 
     Projects="$(BuildDirectory)\BigWave.ALL.sln"></MSBuild> 
17

看來,現在有從命令行發佈一些其他的選擇。具體內容大致如下線的東西現在看來可能有些RC升級到Visual Studio 2012

msbuild mywap.csproj /p:DeployOnBuild=true;PublishProfile=MyProfileName 

欲瞭解更多詳情請查看this post by Scott Hanselman,並檢查了部分上出版

+0

根據您的配置,您可能還需要添加VisualStudioVersion = 11.0 –

+0

感謝您對@SebastianK的反饋。你知道什麼時候該國旗是必要的嗎? –

+1

是的,這裏是關於該參數的更多信息 - 在我的情況下,這是必要的,因爲VS2010安裝在構建框上:http://sedodream.com/PermaLink,guid,a5894bad-f2a1-441a-a5b2-74f16c6cf8aa.aspx –