2011-12-01 32 views
13

我正在創建一個ASP.Net MVC網絡應用程序。團隊中有多名開發人員需要在web.config文件中設置不同的設置。這些設置用於數據庫連接和需要訪問的本地linux虛擬機。還有其他事情我們將來需要添加。什麼是可以用於每個開發人員在web.config中擁有自己的自定義設置的方法,而不用擔心將其本地設置提交到源代碼控制?多個開發人員使用單個web.config不同的設置

部署配置將不起作用,因爲它們通過本地開發VS Web服務器運行站點。我們將使用部署配置來部署到我們環境中的不同階段。

+2

...和你的源代碼控制是? –

+0

@AustinSalonen我們正在使用git –

+0

您是否嘗試過使用web.config轉換? – frennky

回答

7

配置XML文件中的大多數部分都允許您使用configSource attribute。我們使用這個屬性將常用的dev-modified部分放入一個單獨的文件中。這些通常被修改的部分中的每一個都有獨立的* .dev.config和* .prd.config文件。源代碼管理(git)忽略* .dev.config文件。

生產部署會將configSource屬性設置爲使用* .prd.config文件。這又意味着你需要保持兩套配置的更新。我開始研究一種解決方案來保持* .prd.config和* .dev.config文件在元素級別同步,但是沒有時間完成它。

+0

是的,保持文件同步的挑戰是我願意處理的,因爲它的其餘部分非常簡單! –

4

我不確定這是最高科技的解決方案,但我只是打電話給我的web.config「web.config.sample」,並將web.config添加到svn:ignore。這會阻止開發人員意外地檢查它。

當新的密鑰添加到web.config時,您只需記住在web.config.sample中複製它。

當開發人員檢出新副本時,他們只需重命名並配置此文件。我曾在幾家公司工作過,而且我們每次都這樣做,所以我不確定是否有其他方法可以做到這一點。

編輯:您也可以設置一個預先提交掛鉤,以確保沒有人檢入包含web.config.sample的目錄中的web.config文件。

編輯#2:您還可以設置一個post-commit掛鉤,在web.config.sample更新時將所有參與者發送給e-mail,以便他們的應用程序在查找缺失配置鍵時不會失敗。我將來會這樣做。

相關問題