更新:2007 年 11 月
使用原始程式碼控制時,在網站中處理的部分檔案需要特別考慮。
Web.config 檔案
由於 Web.config 檔案是應用程式範圍組態設定的中央存放區,因此比個別頁面更能同時簽出至多個程式開發人員。只要不同的程式開發人員沒有同時變更相同的設定,原始檔控制系統的合併功能就可以在簽入處理序期間合併這些變更。
您可以使用手動方式開啟 Web.config 檔案並進行編輯。如果是上述情形的話,在對檔案進行編輯時,可以如同使用 ASP.NET 網頁一般,先明確簽出檔案或依賴隱含簽出。此外,Visual Web Developer 中的有一些公用程式也會變更 Web.config 檔案。例如,如果使用 Visual Web Developer 的 [加入參考] 對話方塊建立用戶端專案、Web 服務或全域組件快取 (GAC) 組件的參考,新的參考便會儲存在 Web.config 檔案中。在大部分情形中,Visual Web Developer 會視需要自動簽出 Web.config 檔案。例如,如果將新參考加入 Web 應用程式,而且並未簽出 Web.config 檔案,則 [加入參考] 命令便會簽出 Web.config 並加入參考。
但不是每個影響 Web.config 檔案的處理序都會自動簽出該檔案。下列公用程式清單需要您在編輯應用程式組態之前,先簽出 Web.config 檔案:
網站管理工具 ([網站] 功能表上的 [ASP.NET 組態] 命令) 不會自動簽出 Web.config 檔案。如果嘗試在網站管理工具中儲存變更,但是沒有先簽出 Web.config 檔案,則工具會顯示錯誤指出 Web.config 檔案是唯讀。解決方案是在使用網站管理工具之前,先明確簽出 Web.config 檔案。
ASP.NET MMC 嵌入式管理單元不會自動簽出 Web.config 檔案,如果您嘗試在簽出檔案之前儲存組態變更,將會顯示錯誤。
Web.config 檔案的加密區段
如果已透過加密的區段設定 Web.config 檔案,則無法進行合併。合併之前請先解除加密組態設定。
如需加密 Web.config 檔案區段的詳細資訊,請參閱使用受保護的組態加密組態資訊。
Global.asax 檔案
和 Web.config 一樣,Global.asax 檔案會儲存套用至整個網站的資訊,而且它是位於網站的根目錄下。特別的是 Global.asax 檔案包含事件的事件處理程式碼,而且會對應用程式或工作階段引發這些事件。一般來說,多位開發人員可以在沒有安全顧慮下簽出 Global.asax 檔案,並依賴原始檔控制提供者的合併機能解決簽入時的衝突。
資源檔
資源 (.resx) 檔會以 XML 格式儲存資訊,這類檔案可以是本機的頁面或全域的 Web 應用程式。本機頁面資源檔會儲存在 App_LocalResources 檔案中,使用的名稱則是以與檔案相關聯之頁面的名稱做為依據。例如,頁面 Default.aspx 會具有名為 Default.aspx.resx 的相對應本機資源檔。全域資源檔則會儲存在 App_GlobalResources 檔案中。您可以對這些檔案指派任何名稱,只要副檔名是 .resx 即可。
在您簽出頁面時,不會自動簽出本機資源檔。因此,進行編輯之前,您必須明確或隱含簽出相對應的資源檔。使用全域資源檔的方法也很類似,不同點在於開發人員之間的爭用可能性相對較高。在簽出依賴全域資源檔的頁面之前,請檢查原始檔控制以查看其他人是否已簽出全域資源檔。
在這兩個情形中,由於資源檔的格式為 XML,因此可透過合併的方式解決簽入期間發生的衝突。
應用程式服務資料庫
如果使用 ASP.NET 成員資格、角色管理或設定檔,這些服務的應用程式資訊會儲存在資料庫中。根據預設,這是 Web 應用程式的本機資料庫,它會儲存為 Web 應用程式之 App_Data 資料夾中的資料庫檔案。這些服務也需要 Web.config 檔案中的項目。如需詳細資訊,請參閱建立及設定 SQL Server 的應用程式服務資料庫。
如果網站因下列原因受到原始檔控制的話,在本機資料庫中儲存應用程式資料便會造成問題:
在本機偵錯應用程式時,每個開發人員都必須簽出資料庫檔案。您無法使用唯讀的資料庫檔案版本對應用程式進行偵錯;唯讀的資料庫檔案會產生執行階段錯誤。
資料庫會在原始檔控制儲存機制中,儲存為二進位檔案 (Binary File)。因此,如果有多位開發人員簽出資料庫檔案,原始檔控制系統便會無法合併變更。不過每位開發人員的簽入動作會覆寫之前的版本。
處理受到原始檔控制的 Web 應用程式時,最好使用沒有受到原始檔控制的共用資料庫檔案來儲存應用程式服務資料。例如,針對應用程式資料,您可以使用執行 Microsoft SQL Server 的中央伺服器,所有開發人員接著便會處理目前即時的資料。然後,您也可以使用資料庫的備份機能來管理應用程式資料。如需對應用程式資料選取資料庫的詳細資訊,請參閱建立及設定 SQL Server 的應用程式服務資料庫。
組件檔案
您可以將組件 (.dll 檔) 加入網站的 Bin 資料夾,然後在程式碼中參考組件。除非要以較新的版本覆寫 .dll 檔案,否則您不需要簽出該檔案。
如果同時有兩位以上的開發人員對二進位 .dll 檔案進行變更,原始檔控制系統便無法合併變更。因此,如果想要更新檔案並將它簽回,則最佳作法是不應該允許在 .dll 檔案上進行多重簽出。您可以在簽出期間設定選項,防止其他人在您簽出檔案的同時也簽出檔案。
參考至用戶端或類別庫專案
處理 Web 應用程式時,可以將用戶端或類別庫專案加入至方案,並在程式庫專案中建立可編譯的元件。接著,可以在 Web 應用程式中建立專案對專案間的參考,以參考程式庫專案的編譯輸出。例如,建立類別庫專案時,您可能會使用專案內的公用程式類別或自訂控制項建立組件,然後在 Web 應用程式中參考這些組件。
在建立對其他專案的參考時,Visual Web Developer 會從該專案複製編譯的輸出 (若有該輸出的話)。因此,在可以從其他專案建立參考之前,您必須先建置專案。取自用戶端專案的編譯輸出並不會受到原始檔控制;因此,開發人員可以毫無顧慮刪除舊版二進位檔案,或者建置及覆寫原始檔控制的版本。