好吧,這就是事情。如何避免混亂的ASP.NET Web應用程序部署?
我正在開發一個現有的(它開始是一個ASP經典應用程序,所以你可以想象:P)ASP.NET 4.0和SQLServer 2005下的Web應用程序。我們有4個開發人員使用本地SQL Server 2005 Express實例,具有源代碼和Visual Studio數據庫項目
此web應用程序有幾個「Universe」(我們稱之爲)。每個Universe都有自己的數據庫(當前位於同一臺服務器上),但它們都共享相同的模式(表,sprocs等)和相同的源代碼/站點代碼。
所以手動部署真的很煩人,因爲我必須部署源代碼,然後在每個數據庫上手動運行sql腳本。我知道手動部署會導致問題,所以我正在尋找一種自動化的方法。
我們最近創建了一個Visual Studio數據庫項目來管理模式並生成具有不同目標的差異模式腳本。
我不知道如何把碎片一起
我想:
- 有辦法做一個「同步」部署到目標服務器(幸運的是我有完整的RDC訪問服務器,所以我可以根據需要安裝東西)。對於「同步」部署,我的意思是我不想完全部署整個應用程序,因爲它有很多文件,我只想部署這些新的或已更改的文件。
- 爲每個數據庫目標生成diff-sql更新腳本,並將其組合爲1個腳本。爲此,我應該在某處列出一些數據庫名稱。
- 複製站點文件並以簡單和自動的方式執行生成的sql腳本。
我讀過關於MSBuild,MS WebDeploy,NAnt等等。但我不知道從哪裏開始,我真的想擺脫這種手動部署。
如果有比我列舉的更好更簡單的方法,我會很樂意閱讀您的選項。
我知道這不是一個非常具體的問題,但我已經搜索了很多關於它,似乎我無法弄清楚如何做到這一點。我從未使用任何自動化工具進行部署。
任何幫助將是非常讚賞,
謝謝大家,
問候
從來沒有聽說過它,但它似乎我有。每個「宇宙」是完全孤立的,彼此之間沒有互動。無論如何,這些鏈接都非常合理,以及如何建立多租戶結構。我已經有了結構,我只需要一個自動部署的方式。謝謝anwyay。 – emzero 2010-04-28 00:48:26
好吧,實際上我們有一個類似於選項1的結構。由於策略的原因,我們需要每個客戶端都有一個獨立的數據庫,因爲他們不想與其他客戶端共享同一個數據庫。但是我的問題更具體到應用程序代碼和數據庫腳本的自動部署過程。如何將所有內容統一到自動化過程中。 – emzero 2010-04-28 06:38:59