2017-02-17 95 views
1

我有一個MVC應用程序和一個WebAPI服務是一個單一的解決方案,對於這兩個項目,我已經使用文件系統創建了一個publilsh配置文件進行部署。它實際上非常漂亮。但是,我必須先將每個項目手動部署到分段,然後再分配到生產。至少可以說很乏味。MSBuild從命令行,但沒有app_offline.htm?

我已經想通了如何通過命令行調用MSBuild,並指定發佈配置文件。這使我可以在解決方案級別調用MSBuild,並且MVC應用程序和服務都可以部署。大。然而...

當我通過VS2015調用發佈功能(右鍵單擊項目,選擇發佈,選擇正確的配置文件,並走開)它複製一個app_offline.htm,刪除當前存在,建立項目和部署。但是當我通過命令行執行此操作時,app_offline.htm從不顯示,它在部署之前不會首先刪除文件。

有一些開關或參數,我在我的MSBuild的命令行,這很坦率地說是相當簡單的丟失:

msbuild .\mySolution.sln /p:DeployOnBuild=true /p:PublishProfile=Staging 

我知道Web部署的首選方法,但我們這裏有點落後,我們從來沒有真正採用最新,最好的,所以我需要弄清楚如何使用我的當前發佈配置文件,使用文件系統,只比單獨發佈每個項目更有效多次。

回答

0

大多數情況下,VS和MSBuild通過命令行做基本相同的事情。但是我遇到了類似的問題。解決這個問題的一種方法是創建一個目標以確保您的文件被正確地複製。 This MSDN Question在一些可能有所幫助的解決方案中會有更詳細的介紹。在幾個實例中,我有PowerShell腳本或批處理文件,這些文件被檢入到正在討論的項目中,並且一旦解決方案被部署,我就會在目標機器上運行它們。