升級專案
如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件。
變更專案模型,從一個版本的Visual Studio到下一個可能需要的專案和方案升級,讓他們可以在較新版本上執行。 Visual Studio SDK提供可用來實作您自己的專案中的升級支援的介面。
升級策略
若要支援升級,您的專案系統實作必須定義並實作升級策略。 在決定您的策略時,您可以選擇支援的並存 (SxS) 備份、 複製備份,或兩者。
SxS 備份表示專案複製只在需要升級的位置,加入適當的檔案名稱尾碼,例如,".old"的檔案。
複製備份的方式,專案會將所有專案項目都複製到使用者所提供的備份位置。 然後會升級原始專案的位置相關的檔案。
如何升級的運作方式
當較早的版本建立的方案Visual Studio開啟由較新版本的方案檔案來判斷它是否需要升級的 IDE 檢查。 如果升級是必要的升級精靈引導使用者完成升級程序就會自動啟動。
當方案需要升級時,它會查詢每個專案處理站,其升級策略。 策略決定專案的處理站支援複製備份或 SxS 備份。 將資訊傳送至升級精靈,它會收集備份所需的資訊,並對使用者顯示適用的選項。
多專案的方案
如果方案包含多個專案和不同的升級策略,例如專案處理站只支援 SxS 備份的 c + + 專案時,僅支援複製備份的 Web 專案,必須交涉升級策略。
方案會查詢每個專案 factory IVsProjectUpgradeViaFactory。 然後它會呼叫UpgradeProject_CheckOnly以查看是否需要升級通用專案檔案,並判斷支援的升級策略。 升級精靈則叫用。
在使用者完成精靈之後UpgradeProject呼叫執行實際升級每個專案處理站上。 若要加速備份,提供 IVsProjectUpgradeViaFactory 方法SVsUpgradeLogger服務記錄在升級程序的詳細資料。 此服務無法快取。
更新所有相關的全域檔案之後, 每個專案的處理站可以具現化專案。 專案實作必須支援IVsProjectUpgrade。 UpgradeProject升級所有相關的專案項目,然後呼叫方法。
注意
UpgradeProject方法不提供 SVsUpgradeLogger 服務。 您可以取得這項服務呼叫QueryService。
最佳作法
使用SVsQueryEditQuerySave服務,以檢查您可以編輯檔案,在編輯之前,可以將它儲存在儲存它之前。 這可協助您的備份和升級的實作會處理原始檔控制下的專案檔、 檔案權限不足,等等。
使用SVsUpgradeLogger服務備份的所有階段,並升級成功或失敗的升級程序提供相關資訊。
如需有關備份和升級專案的詳細資訊,請參閱 IVsProjectUpgrade 的 vsshell2.idl 中的註解。