Anfang letzter Woche haben wir
Visual Studio 2019 v.16.1 Preview 1 veröffentlicht (siehe
Versionshinweise ). Dies ist die erste Vorschau des ersten Visual Studio 2019-Updates. Wenn Sie noch nicht für den Empfang von Vorschauversionen konfiguriert sind, führen
Sie dies jetzt aus . Die Vorschau-Version wird problemlos neben der Release-Version installiert, damit sie sich nicht gegenseitig stören. Ich empfehle allen Autoren der Erweiterung dringend, die Vorschau-Version zu installieren.
Haben Sie derzeit 16.1 Preview installiert? Großartig Hier sind einige Funktionen, die Ihnen gefallen könnten. Details unter dem Schnitt!

Gemeinsame Projektunterstützung
Es gibt mehrere Gründe, warum Erweiterungsautoren eine Erweiterung manchmal in mehrere Projekte aufteilen müssen, um verschiedene Versionen von Visual Studio zu unterstützen. Wenn Sie eine API verwenden, die für eine frühere Version von Visual Studio nicht vorhanden war, oder wenn zwischen den Versionen, die Sie unterstützen möchten, erhebliche Änderungen vorgenommen wurden. Jetzt ist es viel einfacher geworden, die Erweiterung zu teilen.
In Visual Studio 2019 v.16.1 Vorschau 1 haben wir Unterstützung für Verweise auf das freigegebene Projekt aus VSIX-Projekten in derselben Lösung hinzugefügt.

Sie können allgemeinen Code in ein separates freigegebenes Projekt einfügen, das zur Erstellungszeit direkt in VSIX-Projekte kompiliert wird. Der einzige Code, der dann in den VSIX-Projekten selbst vorhanden ist, ist der spezifische Code für die unterstützte Version von Visual Studio. Das Ergebnis sind zwei separate VSIXs, die auf ihre eigenen Visual Studio-Versionen abzielen und den größten Teil des Codes aus einem gemeinsamen Projekt gemeinsam nutzen. Überprüfen Sie den Code für
die Extension Manager-Erweiterung , die genau das tut.
Keine .resx-Datei mehr erforderlich
Wenn Sie Befehle, Menüs usw. mithilfe einer VSCT-Datei hinzufügen, müssen Sie die mit der
MergeWithCTOMSBuild- Eigenschaft gekennzeichnete .resx-Datei
angeben . Vorlagen in Visual Studio kümmern sich um das Hinzufügen dieser Datei und fügen auch die .ico-Datei hinzu, auf die in der .resx-Datei verwiesen wird. Die Notwendigkeit von .resx ist jedoch ein Implementierungsdetail, und die meisten Erweiterungen müssen es nicht verwenden.
Um das VSIX-Projekt zu vereinfachen, wurde die Anforderung der .resx /.ico-Datei für Benutzer mit dem neuesten NuGet-Paket
Microsoft.VSSDK.BuildTools 16.0 oder höher entfernt.
Hinter den Kulissen bietet das NuGet-Paket eine leere .resx-Datei zum Kompilieren mit der MergeWithCTO-Eigenschaft, bis Sie Ihre eigene im Projekt registrieren.
Pro-Monitor-Bewusstsein
Zusätzliche Unterstützung pro Monitor ist in 16.1 enthalten, wenn .NET Framework 4.8 installiert ist. Die Windows Forms-Benutzeroberfläche ist jetzt besser in der DPI-Skalierung auf Monitoren. Dies kann jedoch nach der Installation von .NET Framework 4.8 zu Problemen mit der Benutzeroberfläche in Ihrer Erweiterung führen.
Wenn Sie Windows Forms in einer Erweiterung verwenden, können Sie das Skalierungsverhalten von Visual Studio 2017
zuordnen, indem Sie die Erstellung Ihres Formulars oder Steuerelements in
DpiAwareness.EnterDpiScope packen .
using (DpiAwareness.EnterDpiScope(DpiAwarenessContext.SystemAware)) using (var form = new MyForm()) { form.ShowDialog(); }
Sie müssen lediglich einen Link zum NuGet-Paket
Microsoft.VisualStudio.DpiAwareness hinzufügen. Verwenden Sie dieses Paket in Erweiterungen, die auf frühere Versionen von Visual Studio abzielen. Beachten Sie jedoch, dass es nur funktioniert, wenn es in Version 16.1 und höher verwendet wird. Daher kann es in Erweiterungen verwendet werden, die mehrere Versionen von Visual Studio umfassen.
Um die Simulation mehrerer Monitore mit unterschiedlicher DPI-Skalierung zu vereinfachen, hat der Techniker des Visual Studio IDE-Teams ein
kleines praktisches Tool erstellt und auf GitHub gestellt . Das Team hat dieses Tool verwendet, als es Unterstützung für die Erkennung pro Monitor hinzufügte, sodass Sie es auch nützlich finden können.
Lesen Sie mehr darüber, wie Sie mit
Per-Monitor Awareness arbeiten .
Synchroner Start deaktiviert
Vor 18 Monaten haben wir eine E-Mail an Erweiterungspartner gesendet, in der die Veralterung des synchronen Starts von Erweiterungspaketen angekündigt wurde. Vor einem Jahr haben wir
einen Blog-Beitrag mit detaillierteren Informationen veröffentlicht, dass das synchron autostart-Paket in einer zukünftigen Version von Visual Studio nicht mehr unterstützt wird. Diese Version ist 16.1.
Es gibt großartige
Beispiele für ein Upgrade auf
AsyncPackage mit
aktiviertem Hintergrundladen, und die meisten Erweiterungen wurden heute bereits
umgestellt . Wenn Sie dies noch nicht getan haben, ist es jetzt an der Zeit, dies zu tun, bevor 16.1 den Vorschaumodus verlässt.
Neues Metapackage SDK
Das
Microsoft.VisualStudio.SDK- Metapaket ist ein separates NuGet-Paket, das auf alle verschiedenen Visual Studio-Pakete verweist, aus denen das SDK besteht. Das Coolste am Metapaket ist, dass Sie Zugriff auf alle Schnittstellen und Dienste haben. Darüber hinaus vermeiden Sie Probleme mit nicht übereinstimmenden Versionen von Paketen.
Bei der Veröffentlichung von Visual Studio 2019 (16.0) verwies die VSIX-Projektvorlage auf Version 15.9 des SDK-Metapakets. Dies lag daran, dass sich Version 16.0 noch in der Entwicklung befand. Alle einzelnen Pakete mussten auf NuGet veröffentlicht werden, bevor wir vom Meta-Paket abhängig werden konnten.
Die gute Nachricht ist, dass wir jetzt endlich bereit für Version 16.0 sind. Wenn Ihre Erweiterung Version 16.0 unterstützt, sollten Sie sie verwenden. Weitere Informationen zu
Erweiterungsversionen finden Sie hier .