共用方式為


升級專案

 

如需 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服務記錄在升級程序的詳細資料。 此服務無法快取。

更新所有相關的全域檔案之後, 每個專案的處理站可以具現化專案。 專案實作必須支援IVsProjectUpgradeUpgradeProject升級所有相關的專案項目,然後呼叫方法。

注意

UpgradeProject方法不提供 SVsUpgradeLogger 服務。 您可以取得這項服務呼叫QueryService

最佳作法

使用SVsQueryEditQuerySave服務,以檢查您可以編輯檔案,在編輯之前,可以將它儲存在儲存它之前。 這可協助您的備份和升級的實作會處理原始檔控制下的專案檔、 檔案權限不足,等等。

使用SVsUpgradeLogger服務備份的所有階段,並升級成功或失敗的升級程序提供相關資訊。

如需有關備份和升級專案的詳細資訊,請參閱 IVsProjectUpgrade 的 vsshell2.idl 中的註解。

另請參閱

專案
升級自訂專案
升級專案項目