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,这些 UIContext 表示启用时表示。 UIContexts 通过向注册编辑器的包应用一个或多个实例 ProvideEditorUIContextAttribute 来注册。

如果编辑器已注册 UIContexts:

  • 如果打开具有给定扩展名的文件时,至少有一个已注册的 UIContexts 处于活动状态,编辑器将包含在编辑器搜索中。
  • 如果已注册的 UIContexts 均未处于活动状态,编辑器将不会包含在编辑器搜索中。

如果编辑器未注册任何 UIContexts,则始终包含在编辑器中搜索该扩展。

例如,如果编辑器仅在 C# 项目打开时可用,则可以通过应用 ProvideEditorUIContext 属性来声明此关联:

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