Co nowego w zestawie Visual Studio 2019 SDK

Zestaw Visual Studio SDK ma następujące nowe i zaktualizowane funkcje programu Visual Studio 2019.

Ostrzeżenie o automatycznie ładowanych rozszerzeniach synchronicznie

Użytkownicy będą teraz widzieć ostrzeżenie, jeśli którekolwiek z zainstalowanych rozszerzeń są synchronicznie automatycznie ładowane podczas uruchamiania. Aby dowiedzieć się więcej o ostrzeżeniu, zobacz Synchroniczne automatycznie ładowane rozszerzenia.

Pojedynczy, ujednolicony zestaw Visual Studio SDK

Teraz możesz pobrać wszystkie zasoby zestawu Visual Studio SDK za pomocą jednego pakietu NuGet Microsoft.VisualStudio.SDK.

Ulepszenia rejestracji edytora

Od momentu utworzenia program Visual Studio obsługuje rejestrację edytora niestandardowego, w którym edytor może zadeklarować koligację dla określonych rozszerzeń (na przykład xaml i rc) lub że jest odpowiedni dla dowolnego rozszerzenia (.*). Począwszy od programu Visual Studio 2019 w wersji 16.1, rozszerzamy obsługę rejestracji edytora.

Nazwy plików

Oprócz lub zamiast rejestrowania obsługi określonego rozszerzenia pliku edytor może zarejestrować, że obsługuje określone nazwy plików, stosując nowy ProvideEditorFilename atrybut do pakietu edytora.

Na przykład edytor, który obsługuje wszystkie pliki json, zastosuje ten ProvideEditorExtension atrybut do jego pakietu:

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

Począwszy od wersji 16.1, jeśli usługa MyEditor obsługuje tylko kilka dobrze znanych plików json, może zamiast tego zastosować te ProvideEditorFilename atrybuty do pakietu:

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

UIContexts

Edytor może zarejestrować co najmniej jeden element UIContext, który reprezentuje, gdy jest włączony. Interfejs użytkownikaContexts są rejestrowane przez zastosowanie co najmniej jednego wystąpienia ProvideEditorUIContextAttribute do pakietu, który rejestruje edytor.

Jeśli edytor zarejestrował interfejs użytkownikaContexts:

  • Jeśli co najmniej jeden z zarejestrowanych elementów UIContexts jest aktywny po otwarciu pliku z danym rozszerzeniem, edytor zostanie uwzględniony w wyszukiwaniu edytora.
  • Jeśli żaden z zarejestrowanych elementów UIContexts nie jest aktywny, edytor nie jest uwzględniony w wyszukiwaniu edytora.

Jeśli edytor nie rejestruje żadnych elementów UIContexts, zawsze jest uwzględniany w wyszukiwaniu tego rozszerzenia w edytorze.

Jeśli na przykład edytor jest dostępny tylko wtedy, gdy projekt języka C# jest otwarty, może zadeklarować tę koligację, stosując ProvideEditorUIContext atrybut:

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