5

我有一個公平的幾個項目的解決方案,其中3個基於Web(WCF在IIS/MVC站點)。當解決方案構建時,它會將此分佈式系統的每個組件轉儲到「構建」文件夾中。運行整個輸出的「配置器」部分將自動在雲中設置系統。它非常整潔:)但是,Web部署項目是一大痛苦。即使沒有對其各自的項目進行更改,他們也「構建」(即部署)每個單獨的時間。更好的替代Web部署項目

更改了一行代碼?期待等待3分鐘的項目重新部署。

[這些項目是非常簡單的時刻 - 2具有單一的.svc和一個.ashx的文件 - 另一種是用〜5次的MVC應用程序]

原來自己可以改變溶液配置,以不'構建'它們,但是我一直這樣做,第二天登錄並忘記它很容易,並且花費幾個小時來跟蹤分佈式系統中的錯誤,因爲這些錯誤還沒有被建立。

爲什麼我使用Web Deploy Projects?那麼,因爲我需要web項目中的所有頁面+二進制文件。項目本身的構建輸出是'bin'文件夾,所以沒有頁面。整個項目文件夾?它有.cs,.csproj和其他我不想包括的文件。

這將最終建立在構建服務器上,但目前它在本地。但是我想要一個快速的方式從Web項目中獲取實際的輸出文件到我的目標文件夾。有任何想法嗎?

回答

2

最後我創建了一個實用工具/工具,它給定一個項目文件,將Web項目的項目文件夾XCOPY到目標位置,然後查看所述項目文件並刪除任何沒有生成操作集的東西內容。非常快速和有效。

+1

+1,因爲這就是我最近做的事情。移除了許多魔力,並且簡單易用且易於自動化。 – Kugel 2013-08-07 10:06:04

1

我知道它仍然在RC中,但是VS2012在做發佈時確實有一個很好的特性,即它檢測到更改並僅發佈這些更改。在構建自動發佈版本時,可能會稍微深入一點。

2

不知道這是否會在您的情況幫,(爲自己的項目上來插頭),但我工作的一個項目,以幫助緩解IIS部署:

https://github.com/twistedtwig/AutomatedDeployments

的想法是,你可以使用IIS(應用程序池,應用程序和網站)的配置文件自動創建和更新本地(開發機器)或遠程(測試和生產機器)網站。

這是一項仍在進行中的工作,但已準備好用於生產系統。

使用軟件包創建作爲後期構建步驟可能會讓你更接近你想要的東西(不要相信它包括所有額外的文件),但每次都會構建它(儘管如果代碼沒有'改變它不應該重建,除非你選擇重建所有項目)。