Sdílet prostřednictvím


Vytvoření prvního rozšíření sady Visual Studio

Tento dokument je rychlý start, který ukazuje, jak vytvořit první rozšíření pomocí visualStudio.Extensibility. Rozšíření běží mimo proces sady Visual Studio, což znamená mimo proces sady Visual Studio.

Požadavky

  • Visual Studio 2022 verze 17.9 Preview 1 nebo vyšší s úlohou Visual Studio extension development

Vytvoření projektu rozšíření

  • Pomocí VisualStudio.Extensibility Project šablony vytvořte nový projekt rozšiřitelnosti.

Screenshot of the VSExtensibility template.

V tuto chvíli jste připraveni začít rozšiřovat Sadu Visual Studio přidáním příkazů a součástí editoru do rozšíření.

Třída Extension

Šablona vytvoří třídu, která rozšiřuje Extension. Tato třída je první, která se vytvoří instance při načtení rozšíření. InitializeServices V metodě můžete do kolekce služeb přidat vlastní služby, aby byly k dispozici pro injektáž závislostí.

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

Můžete také zobrazit VisualStudioContribution atribut, který slouží k označení komponent rozšíření, které mají být využívány sadou Visual Studio. Tento atribut lze použít u tříd implementovaných IVisualStudioContributionClass nebo statických vlastností typu implementace IVisualStudioContributionProperty.

Přidání prvního příkazu

Šablona se vytvoří Command1.cs jako první obslužná rutina příkazu, kterou můžete použít jako výchozí bod. Vzhledem k tomu, že chceme, aby sada Visual Studio věděla o tomto příkazu a Command třída implementuje IVisualStudioContributionClass, příkaz je označen atributem VisualStudioContribution .

[VisualStudioContribution]
internal class Command1 : Command
{

Příkaz má vlastnost konfigurace s názvem CommandConfiguration, která definuje jeho zobrazovaný název, ikonu a umístění v Extensions nabídce.

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

Vlastnosti konfigurace se vyhodnocují kompilátorem jazyka C# při sestavování rozšíření a jejich hodnoty se ukládají jako metadata rozšíření, aby ji Visual Studio mohlo číst bez načtení sestavení rozšíření. Z tohoto důvodu mají vlastnosti konfigurace v porovnání s normálními vlastnostmi další omezení (například musí být jen pro čtení).

Uvidíte, že zobrazovaný název příkazu je "%MyExtension.Command1.DisplayName%", který odkazuje na MyExtension.Command1.DisplayName řetězec v .vsextension/string-resources.json souboru, což umožňuje lokalizovat tento řetězec.

Když se příkaz spustí, Visual Studio zavolá metodu ExecuteCommandAsync , kde můžete umístit zarážku. K interakci se sadou Visual Studio můžete použít context argument nebo this.Extensibility objekt.

Například obslužná rutina příkazu může být následující:

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

Další informace o tom, jak přidat příkazy, najdete v části Příkazy .

Ladění rozšíření

  1. Ujistěte se, že je projekt rozšíření vybraný jako spouštěný projekt v sadě Visual Studio, a spusťte ladění stisknutím klávesy F5 .

  2. Stisknutím F5 sestavení sestavíte rozšíření a nasadíte ho do experimentální instance verze sady Visual Studio, kterou používáte. Ladicí program by se měl připojit po načtení rozšíření.

  3. Nový příkaz najdete v Extensions nabídce, jak je znázorněno na následujícím obrázku:

    Screenshot showing sample command.

Další kroky

Pokud jste zmeškali úvodní přehledy, přečtěte si téma Vítá vás dokumentace k rozšíření VisualStudio.Extensibility.

Nyní vytvořte trochu zajímavější rozšíření; viz Vytvoření jednoduchého rozšíření.