Skapa ditt första Visual Studio-tillägg

Det här dokumentet är en snabbstart som visar hur du skapar ditt första tillägg med VisualStudio.Extensibility. Tillägget körs i en separat process, det vill säga utanför Visual Studio-processen.

Förutsättningar

  • Visual Studio 2022 version 17.9 Förhandsversion 1 eller senare med Visual Studio extension development arbetsbelastning.

Skapa tilläggsprojektet

  • Använd mallen VisualStudio.Extensibility Project för att skapa ett nytt utökningsprojekt.

Skärmbild av VSExtensibility-mallen.

Nu är du redo att börja utöka Visual Studio genom att lägga till kommandon och redigerarkomponenter i tillägget.

Tilläggsklassen

Mallen skapar en klass som utökar Extension. Den här klassen är den första som instansieras när tillägget läses in. I metoden InitializeServices kan du lägga till dina egna tjänster i tjänstesamlingen för att göra dem tillgängliga för beroendeinjektion.

[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.
    }
}

Du kan också se attributet VisualStudioContribution som används för att markera tilläggskomponenter som ska användas av Visual Studio. Det här attributet kan tillämpas på klasser som implementerar IVisualStudioContributionClass eller statiska egenskaper för en typ som implementerar IVisualStudioContributionProperty.

Lägg till ditt första kommando

Mallen skapar Command1.cs som din första kommandohanterare, som du kan använda som utgångspunkt. Eftersom vi vill göra Visual Studio medvetna om det här kommandot och klassen Command implementerar IVisualStudioContributionClass markeras kommandot med attributet VisualStudioContribution.

[VisualStudioContribution]
internal class Command1 : Command
{

Kommandot har en konfigurationsegenskap med namnet CommandConfiguration, som definierar dess visningsnamn, ikon och placering under Extensions menyn.

    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 },
    };

Konfigurationsegenskaper utvärderas av C#-kompilatorn när tillägget skapas och deras värden sparas som tilläggsmetadata så att Visual Studio kan läsa det utan att läsa in tilläggssammansättningen. Därför har konfigurationsegenskaper ytterligare begränsningar jämfört med normala egenskaper (till exempel måste de vara skrivskyddade).

Du kan se att visningsnamnet för kommandot är "%MyExtension.Command1.DisplayName%", som refererar till strängen MyExtension.Command1.DisplayName i filen, vilket gör att strängen .vsextension/string-resources.json kan lokaliseras.

När kommandot körs anropar Visual Studio till metoden ExecuteCommandAsync där du kan placera en brytpunkt. Du kan använda argumentet context eller this.Extensibility för att interagera med Visual Studio.

En kommandohanterare kan till exempel vara följande:

public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
    await context.ShowPromptAsync(
        "Hello from an extension!", 
        PromptOptions.OK, 
        cancellationToken);
}

Mer information om hur du lägger till kommandon finns i avsnittet Kommandon .

Felsöka tillägget

  1. Kontrollera att tilläggsprojektet har valts som startprojekt i Visual Studio och tryck på F5 för att starta felsökningen.

  2. Genom att trycka på F5 skapas tillägget och distribueras till den experimentella instansen av Visual Studio version som du använder. Felsökningsprogrammet bör anslutas så snart tillägget har laddats in.

  3. Du hittar det nya kommandot på Extensions menyn enligt följande bild:

    Skärmbild som visar exempelkommandot i Visual Studio.

    Skärmbild som visar exempelkommandot.

Nästa steg

Om du missade introduktionsöversikterna kan du läsa Välkommen till dokumentationen för VisualStudio.Extensibility.

Skapa nu ett något mer intressant tillägg; se Skapa ett enkelt tillägg.