Erstellen Ihrer ersten Visual Studio-Erweiterung
Dieses Dokument ist eine Schnellstartanleitung, die zeigt, wie Sie Ihre erste Erweiterung mit VisualStudio.Extensibility erstellen. Die Erweiterung läuft außerhalb des Visual Studio-Prozesses aus.
Voraussetzungen
- Visual Studio 2022, Version 17.9 Preview 1 oder höher, mit
Visual Studio extension development
Workload.
Erstellen des Erweiterungsprojekts
- Verwenden Sie
VisualStudio.Extensibility Project
die Vorlage, um ein neues Erweiterbarkeitsprojekt zu erstellen.
An diesem Punkt können Sie mit dem Erweitern von Visual Studio beginnen, indem Sie Ihrer Erweiterung Befehle und Editorkomponenten hinzufügen.
Die Extension-Klasse
Die Vorlage erstellt eine Klasse, die erweitert wird Extension
. Diese Klasse ist der erste, der instanziiert wird, wenn die Erweiterung geladen wird. In der InitializeServices
Methode können Sie der Dienstauflistung eigene Dienste hinzufügen, um sie für die Abhängigkeitseinfügung verfügbar zu machen.
[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.
}
}
Sie können auch das VisualStudioContribution
Attribut sehen, das zum Markieren von Erweiterungskomponenten verwendet wird, die von Visual Studio verwendet werden sollen. Dieses Attribut kann auf Klassen angewendet werden, die implementierungs IVisualStudioContributionClass
- oder statische Eigenschaften eines Typs implementieren IVisualStudioContributionProperty
.
Hinzufügen des ersten Befehls
Die Vorlage erstellt Command1.cs
als ersten Befehlshandler, den Sie als Ausgangspunkt verwenden können. Da visual Studio diesen Befehl und die Command
Klasse implementiert IVisualStudioContributionClass
, wird der Befehl mit dem VisualStudioContribution
Attribut gekennzeichnet.
[VisualStudioContribution]
internal class Command1 : Command
{
Der Befehl verfügt über eine Konfigurationseigenschaft namens CommandConfiguration
, die den Anzeigenamen, das Symbol und die Extensions
Platzierung im Menü definiert.
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 },
};
Konfigurationseigenschaften werden vom C#-Compiler beim Erstellen der Erweiterung und deren Werte als Erweiterungsmetadaten ausgewertet, sodass Visual Studio sie lesen kann, ohne die Erweiterungsassembly zu laden. Aus diesem Grund weisen Konfigurationseigenschaften im Vergleich zu normalen Eigenschaften zusätzliche Einschränkungen auf (z. B. müssen sie schreibgeschützt sein).
Sie können sehen, dass der Anzeigename des Befehls lautet "%MyExtension.Command1.DisplayName%"
, der auf die MyExtension.Command1.DisplayName
Zeichenfolge in der .vsextension/string-resources.json
Datei verweist, sodass diese Zeichenfolge lokalisiert werden kann.
Wenn der Befehl ausgeführt wird, ruft Visual Studio die ExecuteCommandAsync
Methode auf, in der Sie einen Haltepunkt platzieren können. Sie können context
Argument oder this.Extensibility
Objekt verwenden, um mit Visual Studio zu interagieren.
Ein Befehlshandler könnte z. B. wie folgt sein:
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
await context.ShowPromptAsync(
"Hello from an extension!",
PromptOptions.OK,
cancellationToken);
}
Weitere Informationen zum Hinzufügen von Befehlen finden Sie im Abschnitt "Befehle ".
Debuggen der Erweiterung
Stellen Sie sicher, dass Das Erweiterungsprojekt in Visual Studio als Startprojekt ausgewählt ist, und drücken
F5
Sie, um mit dem Debuggen zu beginnen.Wenn Sie Die Erweiterung drücken
F5
und diese in der experimentellen Instanz von Visual Studio-Version bereitstellen, die Sie verwenden. Der Debugger sollte nach dem Laden der Erweiterung angefügt werden.Wie in der folgenden Abbildung dargestellt, finden Sie den neuen Befehl im
Extensions
Menü:
Nächste Schritte
Wenn Sie die Einführungsübersichten verpasst haben, lesen Sie "Willkommen in der Dokumentation zu VisualStudio.Extensibility".
Erstellen Sie nun eine etwas interessantere Erweiterung; siehe Erstellen einer einfachen Erweiterung.