共用方式為


受原始檔控制的系統定義模型 (SDM) 文件

更新:2007 年 11 月

在分散式系統設計工具中,分散式系統圖表 (例如應用程式圖表或系統圖表) 的範圍是設定於方案層次,而其他系統定義模型 (SDM) 文件 (例如應用程式定義 (.sdm) 檔案) 的範圍則是設定於專案層次。您可以像其他任何檔案一樣,將這些檔案簽入及簽出原始檔控制。然而,請注意這些文件如何與原始檔控制互動的相關考量,特別是進行同步處理的時候。

如需詳細資訊,請參閱下列主題:

下列章節包含 SDM 文件如何與原始檔控制互動的詳細資訊:

  • 簽出本機版本與伺服器版本

  • 從共用方案加入 SDM 文件或特定專案檔

  • 在原始檔控制之下的同步處理

簽出本機版本與伺服器版本

視原始檔控制設定而定,您可以選擇簽出檔案的本機版本或伺服器版本。然而,SDM 文件不支援同步處理期間的重新載入。因此,如果檔案正在重新載入的程序中,對已簽入的檔案進行變更,然後簽出這些檔案的伺服器版本可能會讓它們無法與方案保持同步。例如,如果您正在使用 Microsoft FrontPage 原始檔控制整合搭配 [應用程式設計工具] 所產生的 Web 專案,當這些專案正在重新載入的程序時,對它們進行的變更可能會以無訊息模式從同步處理排除。

秘訣

若要避免這種情況,請在需要重新載入檔案的任何作業之前簽出檔案,或者將您的原始檔控制選項設定為一律簽出檔案的本機版本。

從共用方案加入 SDM 文件或特定專案檔

如果您正在使用 Team Foundation 版本控制,並且想要從另一個方案將 SDM 文件或特定專案檔 (例如:程式碼檔) 加入至您的方案,您將無法使用 [從原始檔控制開啟] 對話方塊將項目加入至您的方案。這個對話方塊不會顯示選項,讓您從所有檔案中選取,或者選取具有 SDM 副檔名或其他特定專案檔副檔名 (例如:程式碼檔副檔名) 的項目。如需詳細資訊,請參閱 HOW TO:從版本控制開啟方案和專案

若要將這些檔案加入至您的方案,請參閱 HOW TO:從受原始檔控制的共用方案加入 SDM 文件和專案檔

在原始檔控制之下的同步處理

實作應用程式圖表上的特定應用程式定義時,會針對那些定義中的每一個定義產生一個應用程式專案。專案會包含檔案,例如程式碼檔案、組態檔 (.config) 和 .sdm 檔案。這個 .sdm 檔案是包含應用程式定義之中繼資料 (Metadata) 的 SDM 文件。

當您對應用程式圖表進行變更,或是對與專案相關聯的程式碼或 .config 檔進行變更時,就必須更新應用程式圖表和任何 .sdm 檔。實作應用程式後,即使程式碼和圖表會彼此同步,程式碼仍會變成主要定義。如果已開啟應用程式圖表,則 Visual Studio 會嘗試立即同步處理那些變更。例如,將 Web 服務定義和 .asmx 檔加入至 ASP.NET 應用程式的專案,或是對應用程式圖表進行影響 .sdm 檔的變更時,都會觸發 (Trigger) 同步處理。如需詳細資訊,請參閱跨系統定義模型 (SDM) 文件的同步處理

是否需要簽出以進行同步處理的案例

視案例而定,同步處理期間可能不需要簽出。如果需要同步處理的任何檔案 (例如,應用程式圖表 (.ad) 檔或 .sdm 檔) 已簽入 Visual Studio 原始檔控制,Visual Studio 會根據原始檔控制使用者設定的設定方式,自動簽出必要的檔案或提示您簽出這些檔案。

注意事項:

您可能會看到一個或多個簽出提示,這會依照所需的檔案數目而不同。

例如,如果您的方案包含應用程式圖表 (.ad) 檔,而且從原始檔控制將一個或多個專案 (先前針對應用程式圖表上的應用程式所產生) 加入至方案,Visual Studio 就會自動簽出這些專案中的 .sdm 檔或提示您簽出這些檔案。請勿取消簽出,因為如果應用程式圖表開啟中,或者下次開啟圖表時,圖表將會成為鎖定狀態。如需詳細資訊,請參閱取消簽出和應用程式圖表疑難排解

秘訣

當您完成使用 SDM 文件 (例如 .sdm 檔) 後,請將它們簽入,如此其他使用者才能將它們簽出,例如,當使用者想要使用 .sdm 檔將專案加入至含有應用程式圖表檔的方案時。

表示組態 (.config) 檔中項目的設定會同時儲存在 .sdm 檔和 .config 檔中,即使實作後也一樣。因此,如果您想要使用 [設定和條件約束編輯器] 對設定 (或條件約束) 進行變更,或是變更同時在 .config 檔和 .sdm 檔中表示的設定,就會需要簽出應用程式圖表和 .sdm 檔。如需詳細資訊,請參閱套用設定

反之,當某個含有 Web 服務的 ASP.NET 應用程式已實作後,Web 服務作業就會由 Web 服務類別檔定義,而且不再表示於應用程式圖表 (.ad) 檔中。因此,如果您想要使用 [Web 服務細節] 視窗對 Web 服務作業進行變更,或是在程式碼中直接進行邊更,就不需要簽出應用程式圖表,因為這些都變更會影響 Web 服務類別檔。如需詳細資訊,請參閱應用程式圖表上的 ASP.NET 應用程式概觀

取消簽出

您可以在出現提示時選擇取消簽出,不過,取消簽出會讓 Visual Studio 無法同步處理必要的檔案。根據所需簽出之變更的不同,取消簽出可能會導致下列結果:

  • 會復原透過設計工具所做的變更,會復原初始變更和所有的後續變更

  • 無法復原對程式碼或組態檔所做的變更

    應用程式圖表 (.ad) 檔案會鎖定並出現為唯讀狀態。[錯誤清單] 視窗中會出現錯誤,表示無法完成同步處理。應用程式圖表的唯讀狀態表示它無法與關聯的專案檔案進行同步處理,且可能包含未同步的資訊。

    若要解決這個狀況,請關閉圖表、回復任何未復原的變更,並重新開啟圖表,以嘗試同步處理圖表。如需詳細資訊,請參閱應用程式圖表疑難排解

  • 可能無法編譯程式碼且發生建置錯誤。

如果應用程式圖表已簽入原始檔控制中,則同步處理圖表時必須先簽出該圖表。然而,如果原始檔控制設定為簽出圖表的伺服器版本,則必須重新載入該圖表。因為 SDM 文件不支援在同步處理期間進行重新載入,所以無法簽出該圖表。如果無法簽出應用程式圖表,則無法對它進行同步處理,且會加以鎖定。若要解決鎖定的應用程式圖表,您可以關閉並重新開啟該圖表,以嘗試同步處理該圖表。

若要避免這種情況,請在需要重新載入檔案的任何作業之前簽出檔案,或者將您的原始檔控制選項設定為一律簽出檔案的本機版本。

取得 SDM 文件的最新版本

當開啟應用程式圖表 (.ad) 檔時,取得 SDM 文件的最新版本將會造成圖表鎖定並以唯讀狀態顯示。這個作業需要重新載入應用程式圖表,並且可能造成這些檔案變成未同步。如需詳細資訊,請參閱應用程式圖表疑難排解

若要解決已鎖定的應用程式圖表,請關閉該圖表,然後再重新開啟。

請參閱

參考

對系統定義模型 (SDM) 文件同時進行的簽出和變更

其他資源

Team Foundation

分散式系統設計工具概觀