共用方式為


原始檔控制設定的詳細資料

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

若要實作原始檔控制,您必須適當地設定您的專案系統或編輯器,請執行下列︰

  • 要求權限已變更狀態的轉換

  • 要求儲存檔案的權限

  • 要求權限來新增、 移除或重新命名專案中的檔案

要求權限已變更狀態的轉換

專案或編輯器必須藉由呼叫要求轉換為已變更 (dirty) 狀態的權限IVsQueryEditQuerySave2。 實作每個編輯器IsDocDataDirty必須呼叫QueryEditFiles和獲得核准,以從環境中變更文件,再傳回TrueM:Microsoft.VisualStudio.Shell.Interop.IVsPersistDocData.IsDocDataDirty(System.Int32@)。 專案基本上是專案檔,一個編輯器,如此一來,具有相同負責實作專案檔的狀態變更追蹤,如文字編輯器為它的檔案。 環境處理的方案時,已變更的狀態,但是您必須處理的任何物件參考的方案,但不會儲存,例如,專案檔案或其項目已變更的狀態。 一般情況下,如果您的專案或編輯器是負責管理持續性的項目,然後它會負責實作狀態變更追蹤。

為了回應IVsQueryEditQuerySave2::QueryEditFiles呼叫時,環境可以執行下列動作︰

  • 拒絕呼叫來變更、 編輯器或專案在此情況下必須保持不變 (乾淨) 狀態。

  • 指出應重新載入文件資料。 專案中,環境會重新載入專案的資料。 編輯器必須重新載入的資料從磁碟透過其ReloadDocData實作。 在任一情況下,重新載入資料時,可以變更專案或編輯器中的內容。

複雜且難以上手任務為 retrofit 適當IVsQueryEditQuerySave2::QueryEditFiles到現有的程式碼基底的呼叫。 如此一來,這些呼叫應該在建立專案或編輯器整合。

要求儲存檔案的權限

專案或編輯器儲存檔案之前,必須呼叫QuerySaveFileQuerySaveFiles。 專案檔案,這些呼叫會自動完成的方案,知道何時要儲存專案檔。 編輯器會負責進行這些呼叫,除非編輯器實作IVsPersistDocData2helper 函式會使用SaveDocDataToFile。 如果您的編輯器實作IVsPersistDocData2在這種方式,然後呼叫IVsQueryEditQuerySave2::QuerySaveFileIVsQueryEditQuerySave2::QuerySaveFiles就自動完成。

注意

請一律事先進行這些呼叫 — 也就是您的編輯器時能夠接收取消一次。

要求權限來新增、 移除或重新命名專案中的檔案

專案可以加入、 重新命名或移除檔案或目錄之前,必須呼叫適當IVsTrackProjectDocuments2::OnQuery*以要求權限環境中的方法。 如果授與權限時,則專案必須完成此作業,然後呼叫它適當IVsTrackProjectDocuments2::OnAfter*方法來通知作業完成時的環境。 專案必須呼叫的方法IVsTrackProjectDocuments2介面的所有檔案 (例如,特殊檔案) 並不只是父檔案。 檔案呼叫是必要項,但目錄的呼叫是選擇性的。 如果您的專案具有目錄資訊,則應該呼叫適當IVsTrackProjectDocuments2方法,但如果沒有這項資訊,則環境會推斷目錄資訊。

專案不應該呼叫的方法IVsTrackProjectDocuments2在專案中,開啟或關閉。 要取得此資訊在啟動接聽程式可以等待OnAfterOpenSolution事件並逐一查看方案,以尋找所需的資訊。 關閉時,就不需要這項資訊。 IVsTrackProjectDocuments2提供從SVsTrackProjectDocuments

對於每個新增、 重新命名及移除動作沒有OnQuery*方法和OnAfter*方法。 呼叫OnQuery*方法來要求權限新增,請重新命名或移除檔案或目錄。 呼叫OnAfter*方法之後加入、 重新命名或移除檔案或目錄和專案狀態會反映新的狀態。

另請參閱

IVsPersistDocData
QuerySaveFile
QuerySaveFiles
IVsTrackProjectDocuments2
SaveDocDataToFile
SVsTrackProjectDocuments
支援的原始檔控制