Visual Studio 2019 SDK 的新功能

Visual Studio SDK 為 Visual Studio 2019 提供了以下新功能和更新功能。

非同步自動載入擴充功能警告

現在,如果任何已安裝的擴充功能在啟動時同步自動載入,使用者將會看到警告。 您可以在同步自動載入擴充功能中深入了解警告。

單一、整合的 Visual Studio SDK

您現在可以透過單一 NuGet 套件 Microsoft.VisualStudio.SDK 取得所有 Visual Studio SDK 資產。

編輯器註冊增強功能

Visual Studio 自建立以來就可支援自訂編輯器註冊,其中編輯器可以聲明其與特定擴充功能 (例如,.xaml 和 .rc) 的關聯性,或者它適用於任何擴充功能 (.*)。 我們從 Visual Studio 2019 16.1 版開始,擴大對編輯器註冊的支援。

檔案名稱

除了或者代替註冊對特定檔案擴充功能的支援,編輯器也可以藉由將新的 ProvideEditorFilename 屬性套用至編輯器的套件,來註冊它支援特定檔名。

例如,支援所有 .json 檔案的編輯器會將此 ProvideEditorExtension 屬性套用至其套件:

[ProvideEditorExtension(typeof(MyEditor), ".json", MyEditor.Priority)]

從 16.1 開始,如果 MyEditor 只支援幾個已知的 .json 檔案,它可以改為將這些 ProvideEditorFilename 屬性套用至其套件:

[ProvideEditorFilename(typeof(MyEditor), "particular.json", MyEditor.Priority)]
[ProvideEditorFilename(typeof(MyEditor), "special.json",    MyEditor.Priority)]

UIContexts

編輯器可以註冊一個或多個 UIContext 來表示它啟用的情況。 UIContexts 是藉由將一個或多個 ProvideEditorUIContextAttribute 的執行個體套用至註冊編輯器的套件來註冊。

如果編輯器已註冊 UIContexts:

  • 如果開啟具有指定擴充功能的檔案時,至少有一個已註冊的 UIContexts 處於使用中狀態,編輯器就會包含在編輯器搜尋中。
  • 如果已註冊的 UIContexts 沒有作用,編輯器就不會包含在編輯器搜尋中。

如果編輯器未註冊任何 UIContexts,它將始終包含在該擴充功能的編輯器搜尋中。

例如,如果編輯器只有在 C# 專案開啟時才可使用,則可以套用 ProvideEditorUIContext 屬性來宣告此關聯性:

[ProvideEditorUIContext(typeof(MyEditor), KnownUIContexts.CSharpProjectContext)]