Aracılığıyla paylaş


İlk Visual Studio uzantınızı oluşturma

Bu belge, VisualStudio.Extensibility kullanarak ilk uzantınızı oluşturmayı gösteren hızlı bir başlangıçtır. Uzantı işlem dışı çalışır, yani Visual Studio işleminin dışındadır.

Önkoşullar

  • İş yüküyle Visual Studio extension development Visual Studio 2022 sürüm 17.9 Preview 1 veya üzeri.

Uzantı projesini oluşturma

  • Şablonu VisualStudio.Extensibility Project kullanarak yeni bir genişletilebilirlik projesi oluşturun.

Screenshot of the VSExtensibility template.

Bu noktada, uzantınıza komutlar ve düzenleyici bileşenleri ekleyerek Visual Studio'yu genişletmeye başlayabilirsiniz.

Uzantı sınıfı

Şablon genişleten Extensionbir sınıf oluşturur. Bu sınıf, uzantınız yüklendiğinde örneği oluşturulmuş ilk sınıftır. yönteminde InitializeServices , bağımlılık ekleme için kullanılabilir hale getirmek için hizmet koleksiyonuna kendi hizmetlerinizi ekleyebilirsiniz.

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

Visual Studio tarafından kullanılması amaçlanan uzantı bileşenlerini işaretlemek için kullanılan özniteliği de görebilirsiniz VisualStudioContribution . Bu öznitelik uygulayan sınıflara veya uygulayan IVisualStudioContributionClass bir türün IVisualStudioContributionPropertystatik özelliklerine uygulanabilir.

İlk komutunuzu ekleme

Şablon, başlangıç noktası olarak kullanabileceğiniz ilk komut işleyiciniz olarak oluşturur Command1.cs . Visual Studio'yu bu komutun farkında hale getirmek istediğimizden ve Command sınıfı uyguladığından IVisualStudioContributionClass, komutu özniteliğiyle VisualStudioContribution işaretlenir.

[VisualStudioContribution]
internal class Command1 : Command
{

Komutun, menü altında Extensions görünen adını, simgesini ve yerleşimini tanımlayan adlı CommandConfigurationbir yapılandırma özelliği vardır.

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

Yapılandırma özellikleri, uzantı oluşturulurken C# derleyicisi tarafından değerlendirilir ve Visual Studio'un uzantı derlemesini yüklemeden okuyabilmesi için değerleri uzantı meta verileri olarak kaydedilir. Bu nedenle, yapılandırma özellikleri normal özelliklere kıyasla ek kısıtlamalara sahiptir (örneğin, salt okunur olmalıdır).

Komutun "%MyExtension.Command1.DisplayName%"görünen adının, dosyadaki .vsextension/string-resources.json dizeye başvuran ve bu dizenin MyExtension.Command1.DisplayName yerelleştirilmesine izin veren olduğunu görebilirsiniz.

Komut yürütürken Visual Studio, kesme noktası yerleştirebileceğiniz yöntemi çağırır ExecuteCommandAsync . Visual Studio ile etkileşim kurmak için bağımsız değişken veya this.Extensibility nesne kullanabilirsinizcontext.

Örneğin, bir komut işleyicisi aşağıdaki gibi olabilir:

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

Komut ekleme hakkında daha fazla bilgi için lütfen Komutlar bölümüne bakın.

Uzantınızda hata ayıklama

  1. Visual Studio'da başlangıç projesi olarak uzantı projenizin seçildiğinden emin olun ve hata ayıklamayı başlatmak için basın F5 .

  2. Basıldığında F5 uzantınız derlenip kullandığınız Visual Studio sürümünün deneysel örneğine dağıtılır. Uzantınız yüklendikten sonra hata ayıklayıcısı eklenmelidir.

  3. Yeni komutu aşağıdaki görüntüde Extensions gösterildiği gibi menüde bulabilirsiniz:

    Screenshot showing sample command.

Sonraki adımlar

Giriş niteliğindeki genel bakışları kaçırdıysanız VisualStudio.Genişletilebilirlik belgelerine hoş geldiniz bölümüne bakın.

Şimdi biraz daha ilginç bir uzantı oluşturun; Bkz. Basit uzantı oluşturma.