Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten dokument to krótki przewodnik pokazujący, jak utworzyć pierwsze rozszerzenie za pomocą VisualStudio.Extensibility. Rozszerzenie działa poza procesem, czyli poza procesem programu Visual Studio.
Prerequisites
- Visual Studio 2022 w wersji 17.9 Preview 1 lub nowszej z zainstalowanym pakietem obciążeń
Visual Studio extension development.
Tworzenie projektu rozszerzenia
- Użyj szablonu
VisualStudio.Extensibility Project, aby utworzyć nowy projekt rozszerzeń.
Na tym etapie możesz rozpocząć rozszerzanie Visual Studio przez dodanie poleceń i składników edytora do rozszerzenia.
Klasa rozszerzenia
Szablon tworzy klasę, która rozszerza klasę Extension. Ta klasa jest pierwszą klasą instancjonowaną podczas ładowania Twojego rozszerzenia. W metodzie InitializeServices można dodać własne usługi do kolekcji usług, aby udostępnić je na potrzeby wstrzykiwania zależności.
[VisualStudioContribution]
internal class ExtensionEntrypoint : Extension
{
protected override void InitializeServices(IServiceCollection serviceCollection)
{
base.InitializeServices(serviceCollection);
// You can configure dependency injection here by adding services to the serviceCollection.
}
}
Można również zobaczyć atrybut VisualStudioContribution używany do oznaczania składników rozszerzeń, które mają być używane przez Visual Studio. Ten atrybut można zastosować do klas implementujących IVisualStudioContributionClass lub statycznych właściwości typu implementującego IVisualStudioContributionProperty.
Dodaj pierwsze polecenie
Szablon tworzy Command1.cs jako pierwszy program obsługi poleceń, którego można użyć jako punktu wyjścia. Ponieważ chcemy poinformować Visual Studio o tym poleceniu, a klasa Command implementuje IVisualStudioContributionClass, polecenie jest oznaczone atrybutem VisualStudioContribution.
[VisualStudioContribution]
internal class Command1 : Command
{
Polecenie ma właściwość konfiguracji o nazwie CommandConfiguration, która definiuje jego nazwę wyświetlaną, ikonę i położenie w Extensions menu.
public override CommandConfiguration CommandConfiguration => new("%MyExtension.Command1.DisplayName%")
{
// Use this object initializer to set optional parameters for the command. The required parameter,
// displayName, is set above. DisplayName is localized and references an entry in .vsextension\string-resources.json.
Icon = new(ImageMoniker.KnownValues.Extension, IconSettings.IconAndText),
Placements = new[] { CommandPlacement.KnownPlacements.ExtensionsMenu },
};
Właściwości konfiguracji są przetwarzane przez kompilator języka C# podczas kompilowania rozszerzenia, a ich wartości są zapisywane jako metadane rozszerzenia, dzięki czemu program Visual Studio może je odczytać bez konieczności ładowania zestawu rozszerzenia. Z tego powodu właściwości konfiguracji mają dodatkowe ograniczenia w porównaniu z normalnymi właściwościami (na przykład muszą być tylko do odczytu).
Można zauważyć, że wyświetlana nazwa polecenia to "%MyExtension.Command1.DisplayName%", które odwołuje się do ciągu MyExtension.Command1.DisplayName w pliku .vsextension/string-resources.json, co umożliwia lokalizację tego ciągu.
Po wykonaniu polecenia Visual Studio wywołuje metodę ExecuteCommandAsync, w której można umieścić punkt przerwania. Do interakcji z Visual Studio można użyć argumentu context lub obiektu this.Extensibility.
Na przykład procedura obsługi poleceń może być następująca:
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
await context.ShowPromptAsync(
"Hello from an extension!",
PromptOptions.OK,
cancellationToken);
}
Aby uzyskać więcej informacji na temat dodawania poleceń, zobacz sekcję Polecenia .
Debugowanie rozszerzenia
Upewnij się, że projekt rozszerzenia został wybrany jako projekt startowy w Visual Studio, a następnie naciśnij
F5, aby rozpocząć debugowanie.Naciśnięcie klawisza
F5kompiluje rozszerzenie i wdraża je w eksperymentalnej instancji używanej wersji programu Visual Studio. Debuger powinien zostać dołączony po załadowaniu rozszerzenia.Nowe polecenie można znaleźć w
Extensionsmenu, jak pokazano na poniższej ilustracji:
Następne kroki
Jeśli nie widzisz materiałów wprowadzających, zobacz Welcome to the VisualStudio.Extensibility documentation.
Teraz utwórz nieco bardziej interesujące rozszerzenie; Zobacz Tworzenie prostego rozszerzenia.