Neuigkeiten im Visual Studio 2019 SDK

Das Visual Studio SDK verfügt über die folgenden neuen und aktualisierten Features für Visual Studio 2019.

Warnung über synchron geladene Erweiterungen

Benutzern wird jetzt eine Warnung angezeigt, wenn eine ihrer installierten Erweiterungen beim Start synchron automatisch geladen wird. Weitere Informationen zur Warnung finden Sie unter synchron geladenen Erweiterungen.

Single, unified Visual Studio SDK

Sie können jetzt alle Visual Studio SDK-Ressourcen über ein einzelnes NuGet-Paket "Microsoft.VisualStudio.SDK" abrufen.

Verbesserungen bei der Editorregistrierung

Seit der Erstellung unterstützt Visual Studio die Benutzerdefinierte Editor-Registrierung, bei der ein Editor seine Affinität für bestimmte Erweiterungen (z. B. XAML und RC) deklarieren kann oder für jede Erweiterung (.*) geeignet ist. Ab Visual Studio 2019, Version 16.1, erweitern wir die Unterstützung für die Editorregistrierung.

Dateinamen

Zusätzlich zu oder statt der Registrierung der Unterstützung für eine bestimmte Dateierweiterung kann ein Editor registrieren, dass er bestimmte Dateinamen unterstützt, indem das neue ProvideEditorFilename Attribut auf das Editorpaket angewendet wird.

Beispielsweise würde ein Editor, der alle JSON-Dateien unterstützt, dieses ProvideEditorExtension Attribut auf das Paket anwenden:

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

Ab 16.1 kann MyEditor, wenn MyEditor nur einige bekannte JSON-Dateien unterstützt, stattdessen diese ProvideEditorFilename Attribute auf das Paket anwenden:

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

UIContexts

Ein Editor kann mindestens einen UIContext registrieren, der angibt, wann er aktiviert ist. UIContexts werden registriert, indem eine oder mehrere Instanzen des ProvideEditorUIContextAttribute Pakets angewendet werden, das den Editor registriert.

Wenn ein Editor UIContexts registriert hat:

  • Wenn mindestens eine der registrierten UIContexts aktiv ist, wenn eine Datei mit der angegebenen Erweiterung geöffnet wird, wird der Editor in der Editorsuche enthalten.
  • Wenn keiner der registrierten UIContexts aktiv ist, ist der Editor nicht in der Editorsuche enthalten.

Wenn ein Editor keine UIContexts registriert, ist er immer in der Editorsuche für diese Erweiterung enthalten.

Wenn beispielsweise ein Editor nur verfügbar ist, wenn ein C#-Projekt geöffnet ist, kann er diese Affinität deklarieren, indem ein ProvideEditorUIContext Attribut angewendet wird:

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