Freigeben über


Versionshinweise zum neuesten stabilen Kanal für das Windows App SDK

Der stabile Kanal stellt Releases des Windows App SDK bereit, die für die Verwendung durch Apps in Produktionsumgebungen unterstützt werden. Apps, die die stabile Version des Windows App SDK verwenden, können auch im Microsoft Store veröffentlicht werden.

Wichtige Links:

Archivierte Versionshinweise zum stabilen Kanal

Downloads für das Windows App SDK

Hinweis

Die Windows App SDK Visual Studio Extensions (VSIX) werden nicht mehr als separater Download angeboten. Sie sind auf dem Visual Studio Marketplace innerhalb von Visual Studio erhältlich.

Version 1.5

Version 1.5.3 (1.5.240428000)

Dies ist ein Wartungsrelease des Windows App SDK, das wichtige Fehlerbehebungen für das Release 1.5 enthält.

  • Es wurde ein Problem behoben, bei dem ItemsRepeater manchmal dazu führte, dass das Fenster an den Anfang verschoben wurde.
  • Es wurde ein möglicher Absturz bei der Aktualisierung des Transparenzstatus einer AcrylicBrush behoben.
  • Es wurde ein Problem behoben, bei dem ItemsRepeater nicht genügend Elemente generiert hat, wenn es sich in einem ShouldConstrainToRootBounds="false" Popup-Fenster befand, das höher oder breiter als das Standardfenster war.
  • Es wurde ein Problem behoben, bei dem Fehler MSB4086 auftreten konnte, wenn die Projektdatei während der Buildzeit keine TargetPlatformVersion angab. Dieser Fehler wurde im Rahmen des GitHub-Problems #9531 ermittelt.

Version 1.5.2 (1.5.240404000)

Dies ist eine Wartungsversion des Windows App SDK, die kritische Fehlerbehebungen für die Version 1.5 und eine neue Funktion für Widget-Feed-Provider enthält.

Widget-Feed-Provider aktualisiert

  • Feed-Provider können nun Ankündigungen im Widgets-Dashboard anzeigen:
    • Mit der neuen FeedManager.TryShowAnnouncement-API kann ein Feed-Provider beantragen, dass das Widget Dashboard seine Ankündigungen anzeigt. Um Ihre Ankündigung anzuzeigen, erstellen Sie ein FeedAnnouncement-Objekt und rufen die FeedManager.TryShowAnnouncement-API auf.
    • Für Feed-Ankündigungen werden eigene Badges in der Taskleiste angezeigt, die über die FeedAnnouncement-API angepasst werden können.
  • Feed-Provider können sich jetzt für den Erhalt von Analyse- und Fehlerberichten über ihren Anbieter entscheiden, wenn ein Benutzer mit ihm interagiert. Um sich anzumelden, implementieren Sie die Schnittstellen IFeedProviderAnalytics und/oder IFeedProviderErrors durch Ihren Anbieter.

Die Aktualisierungen der Feed-Provider umfassen die folgenden neuen APIs:

Microsoft.Windows.Widgets.Feeds.Providers
 
    FeedAnalyticsInfoReportedArgs
    FeedErrorInfoReportedArgs
    FeedManager
        SendMessageToContent
        TryShowAnnouncement
 
    FeedMessageReceivedArgs
    FeedResourceRequest
    FeedResourceRequestedArgs
    FeedResourceResponse
    IFeedAnnouncementInvokedTarget
    IFeedManager2
    IFeedProviderAnalytics
    IFeedProviderErrors
    IFeedProviderMessage
    IFeedResourceProvider
Microsoft.Windows.Widgets.Notifications
 
    AnnouncementActionKind
    AnnouncementTextColor
    FeedAnnouncement
    FeedAnnouncementInvokedArgs

Fehlerbehebungen

  • Ein Problem wurde behoben, bei dem DispatcherTimer nicht zum richtigen Zeitpunkt ausgelöst wurde, wenn der primäre Bildschirm nicht mit 60 Hz lief.
  • Es wurde ein Problem behoben, bei dem ein Textbox-Eingabemethoden-Editor (IME) falsch positioniert wurde, wenn er mit einem anderen Skalierungsfaktor als 100 % ausgeführt wurde. Weitere Informationen finden Sie im GitHub-Issue #9382.
  • Es wurde ein Problem behoben, bei dem ein Drag-and-Drop-Vorgang, der aus einer anderen Anwendung gestartet wurde, möglicherweise nicht die korrekten Kopier-/Verschiebe-/Verknüpfungsvorgänge zuließ.
  • Ein möglicher Absturz wurde behoben, wenn eine ListView ItemsSource zurückgesetzt wird und sofort den Fokus erhält.
  • Ein Problem wurde behoben, bei dem ShouldConstrainToRootBounds="false" Popups/Flyouts keine geerbte Skalentransformation anwenden. Weitere Informationen finden Sie in den GitHub-Problemen #9118 und #9433.
  • Ein möglicher Absturz wurde behoben, wenn ein Kompositionsobjekt zerstört wird, während eine Animation noch läuft.
  • Ein möglicher Absturz beim Herunterfahren in NavigationView::RevokeNavigationViewItemRevokers wurde behoben.

Version 1.5.1 (1.5.240311000)

Dies ist ein Wartungsrelease des Windows App SDK, das wichtige Fehlerbehebungen für das Release 1.5 enthält.

  • Es wurde ein Problem behoben, bei dem eigenständige Apps möglicherweise nicht erstellt werden konnten, da „map.html“ nicht kopiert werden konnte.
  • Es wurde ein Problem behoben, bei dem MapControl nicht initialisiert werden konnte, weil gültige Token abgelehnt wurden. Weitere Informationen finden Sie im GitHub-Issue #9324.
  • Es wurde ein Problem behoben, bei dem MapControl mit einem blauen Hintergrund geladen wurde. Weitere Informationen finden Sie im GitHub-Issue #9377.
  • Es wurde ein Problem behoben, bei dem ein NavigationViewItem durch einmaliges Klicken auf das Chevron nicht korrekt erweitert oder reduziert wurde. Dies führte auch dazu, dass Menüs durch Klicken auf das Chevron im PaneDisplayMode="Top"-Modus als leer angezeigt wurden. Weitere Informationen finden Sie in den GitHub-Problemen #9423 und #9426.
  • Es wurde ein Problem behoben, bei dem durch das Antippen eines NavigationViewItem per Berührung oder Stift verhindert wurde, dass das Element auf zukünftige Eingaben reagiert. Weitere Informationen finden Sie im GitHub-Issue #9429.
  • Es wurde ein Absturz beim Klicken auf ein Element im NavigationView.PaneFooter-Bereich behoben. Weitere Informationen finden Sie im GitHub-Issue #9396.
  • Es wurde ein Problem behoben, bei dem Menüsymbole manchmal an der falschen Stelle angezeigt wurden. Weitere Informationen finden Sie im GitHub-Issue #9409.
  • Es wurde ein Problem behoben, bei dem der Acryl-Hintergrund in Menüs erst dann angezeigt wurde, wenn vom Fenster weg- und wieder zum Fenster zurückgewechselt wurde. Weitere Informationen finden Sie im GitHub-Issue #9406.
  • Es wurde ein möglicher Absturz bei der Initialisierung von TextBox/RichEditBox behoben. Weitere Informationen finden Sie im GitHub-Issue #9216.
  • Es wurden einige auffällige Ausnahmen behoben, die NavigationView beim Zerstören ausgelöst und abgefangen hat.
  • Es wurde ein Problem behoben, bei dem aufgrund einer fehlerhaften PointerCaptureLost-Meldungsauslösung eine „Zwei-Finger-Zoom“-Geste manchmal als Schwenken oder Tippen angezeigt wurde.

Version 1.5

In den folgenden Abschnitten werden neue und aktualisierte Features und bekannte Probleme für Version 1.5 beschrieben.

In einer vorhandenen Windows App SDK 1.4-App können Sie Ihr NuGet-Paket auf 1.5.240227000 aktualisieren (weitere Informationen finden Sie im Abschnitt Aktualisieren eines Pakets in Installieren und Verwalten von Paketen in Visual Studio mit dem NuGet-Paket-Manager).

Die aktualisierten Runtime- und MSIX-Pakete finden Sie unter Downloads für das Windows App SDK.

XAML Islands Laufzeit- und Shutdown-Updates

Es gibt einen Verhaltensunterschied zwischen WinAppSDK 1.4 und WinAppSDK 1.5 für XAML-inselbasierte Anwendungen, wenn das letzte XAML-Fenster auf einem Thread geschlossen wird.

  • In WinAppSDK 1.4 beendet die XAML-Laufzeitumgebung die Ereignisschleife des Threads immer dann, wenn das letzte XAML-Fenster eines Threads geschlossen wird.
  • In WinAppSDK 1.5:
    • Wenn es sich bei Ihrer App um eine WinUI-Desktop-App handelt, ist das Standardverhalten immer noch dasselbe wie in WinAppSDK 1.4.
    • Wenn Sie XAML für die DesktopWindowXamlSource („XAML-Inseln“) API verwenden, ist das Standardverhalten jetzt, dass XAML die Ereignisschleife des Threads nicht automatisch beendet.
    • In beiden Modi können Sie dieses Verhalten ändern, indem Sie die Eigenschaft Application.DispatcherShutdownMode festlegen.

Weitere Informationen finden Sie in der Dokumentation für die Application.DispatcherShutdownMode Eigenschaft, sofern verfügbar. Dies vervollständigt den GitHub-Vorschlag #8492.

Es gibt einen Verhaltensunterschied zwischen WinAppSDK 1.4 und WinAppSDK 1.5 für XAML-Insel-basierte Anwendungen in der Lebensdauer der XAML-Laufzeit:

  • In WinAppSDK 1.4 wird die XAML-Laufzeit auf einem Thread beendet, wenn entweder alle WindowsXamlManager- und DesktopWindowXamlSource-Objekte auf einem bestimmten Thread geschlossen oder heruntergefahren werden oder die auf diesem Thread laufende DispatcherQueue heruntergefahren wird (in diesem Fall wird die XAML-Laufzeit während der DispatcherQueue.FrameworkShutdownStarting-Phase heruntergefahren).
  • In WinAppSDK 1.5 wird die XAML-Laufzeit auf einem Thread nur dann beendet, wenn die auf diesem Thread laufende DispatcherQueue beendet wird (die XAML-Laufzeit wird immer während der Phase DispatcherQueue.FrameworkShutdownStarting beendet).

Weitere Informationen finden Sie in der Dokumentation zur WindowsXamlManager Klasse, sofern verfügbar.

Es gibt einen Verhaltensunterschied auf WindowsXamlManager.InitializeForCurrentThread():

  • In WinAppSDK 1.4 gibt WindowsXamlManager.InitializeForCurrentThread() bei jedem Aufruf eine eindeutige Instanz eines WindowsXamlManager-Objekts zurück.
  • In WinAppSDK 1.5 gibt WindowsXamlManager.InitializeForCurrentThread() eine vorhandene Instanz zurück, wenn bereits eine auf dem Thread existiert. Close/Dispose() wird jetzt ignoriert.

WinUI Maps-Steuerelement

Die WinUI Maps-Steuerung ist jetzt verfügbar! Dieses Steuerelement wird von WebView2 und Azure Karten unterstützt und stellt die folgenden Features bereit:

  • Verschieben und Zoomen mit den Kartenschaltflächen oder per Toucheingabe.
  • Ändern des Stils der Karte in Satelliten-, Gelände- oder Straßenansicht.
  • Programmgesteuertes Hinzufügen von interagierbaren Pins mit vom Entwickler anpassbaren Symbolen zur Karte.
  • Entwickleranpassung für die Ausrichtung der Karte beim ersten Laden.
  • Kontrolle für Entwickler über das Ausblenden oder Anzeigen der Schaltflächen zum Schwenken, Zoomen und Kartenstilen.

WinUI 3 Maps Control

Hinweis

Um das Maps Steuerelement zu verwenden, benötigen Sie einen Azure Karten-Schlüssel. Informationen zum Erstellen des Schlüssels finden Sie auf der Dokumentationsseite von Azure Karten zum Erstellen einer Web-App.

Das Maps Steuerelement ist völlig neu und wir freuen uns über Ihr Feedback, um ihre zukünftige Richtung zu bewerten!

Neues SelectorBar-Steuerelement

In Version 1.5 haben wir ein neues Steuerelement SelectorBar hinzugefügt, mit dem Benutzer zwischen mehreren Datenansichten wechseln können. Dieses Steuerelement war auf unserer 1.5-Roadmap bisher als „SegmentedControl“ bekannt.

WinUI 3 SelectorBar Control

Beschriftungen in der CommandBarFlyout primäre Befehle

Das Bildmaterial von CommandBarFlyout wurde aktualisiert, um eine Textbeschriftung für die Elemente im primären Befehlsbereich anzuzeigen, wenn die Eigenschaft Label auf AppBarButton eingestellt wurde. Bisher wurde für die primären Befehle im Bereich CommandBarFlyout nur ein Symbol angezeigt, jetzt können sie sowohl ein Symbol als auch eine Beschriftung anzeigen, um die Benutzerfreundlichkeit zu verbessern.

WinUI 3 CommandBarFlyout Labels

WebView2-Unterstützung für benutzerdefinierte Umgebungen/Optionen

Das WinUI WebView2-Steuerelement bietet nun die Möglichkeit, das zugrunde liegende CoreWebView2-Objekt mit einem benutzerdefinierten CoreWebView2Environment und CoreWebView2ControllerOptions anzupassen. So kann der App-Autor einen alternativen Pfad angeben, von dem aus die WebView2Runtime geladen werden soll, einen anderen UserDataFolder verwenden oder Optionen wie IsPrivateModeEnabled und ScriptLocale setzen.

Unterstützung für .NET 8

In einer kürzlich veröffentlichten Version 1.4 haben wir Unterstützung für .NET 8 hinzugefügt, aber die Warnung vor der Verwendung von plattformspezifischen RIDs wurde beibehalten. In Version 1.5 haben wir diese Arbeit abgeschlossen, sodass die Warnung nicht mehr vorhanden ist.

Verbesserte Fehlersuche und Verfügbarkeit des Quellcodes

Wir injizieren jetzt Github-Source-Server-Informationen für den Code im Microsoft-ui-xaml-Repository in unsere öffentlichen Symbole, sodass Debugger den Quellcode automatisch herunterladen können. Wir haben auch andere Korrekturen und Verbesserungen an unseren Symbolen im gesamten WinAppSDK vorgenommen, um die Debugging-Erfahrung zu verbessern.

Verbesserte Funktionalität zum Debuggen von Layout-Zyklen

Das Debuggen von Layout-Zyklen in einer WinUI-Applikation kann eine Herausforderung sein. Daher bietet das DebugSettings-Objekt in Version 1.5 nun Optionen zum Aktivieren einer verbesserten Protokollierung und von Haltepunkten für den Layout-Prozess, um das Debuggen und Beheben von Layout-Zyklen in der App zu erleichtern.

Weitere neue Funktionen aus dem gesamten WinAppSDK

  • Unterstützung für das PublishSingleFile-Bereitstellungsmodell hinzugefügt. Weitere Informationen zu PublishSingleFile finden Sie in der Dokumentation zur Bereitstellung einzelner Dateien.
  • Verbesserungen bei der Unterstützung von Bildschirmlesegeräten, der Textskalierung und anderen barrierefreien Funktionen.
  • Verschiedene Stabilitäts- und Leistungsverbesserungen basierend auf unserem priorisierten GitHub-Bug-Backlog.

Neue Funktionen werden separat veröffentlicht

Neue Versionen der WinAppSDK Visual Studio Templates für C# und C++ werden über den Visual Studio Marketplace veröffentlicht und erscheinen ein paar Wochen nach der Veröffentlichung von 1.5. Mit der neuen Version können die Vorlagen nun unabhängig von WinAppSDK-Releases veröffentlicht werden, was uns mehr Flexibilität bei der Bereitstellung von Updates für Kunden gibt.

Andere bereits geplante Funktionen

In 1.5 haben wir Fortschritte bei den folgenden Funktionen gemacht, die wir in unserer Roadmap angekündigt, aber nicht fertiggestellt haben. Sie werden bis zum Zeitrahmen 1.6 fortgesetzt.

  • Registerkarten-Fenster
  • Drag-n-Drop-Unterstützung für WebView2
  • Untersuchungen zur Tabellenansicht und zur Tintensteuerung

Die dynamische Beleuchtung wurde vorerst von der Roadmap gestrichen.

Bekannte Probleme

  • Bei der Verwendung von Bibliotheken, die Ressourcen wie .xaml-Dateien enthalten, kann es vorkommen, dass Sie zur Laufzeit eine Fehlermeldung erhalten, die besagt, dass diese Ressourcen nicht gefunden werden können. In diesem Fall kann es erforderlich sein, <ShouldComputeInputPris>true</ShouldComputeInputPris> in die Projektdatei einzufügen, um sicherzustellen, dass diese Ressourcen aufgenommen werden.
  • Das Klicken auf den Chevron eines NavigationViewItem wird nicht mehr korrekt mit einem einzigen Klick erweitert oder reduziert. Ein Doppelklick funktioniert immer noch, ebenso wie ein Klick an anderer Stelle auf NavigationViewItem.

Fehlerbehebungen

  • Es wurde ein Problem behoben, bei dem StackPanel Abstände auf ausgeblendete Elemente anwandte. Weitere Informationen finden Sie im GitHub-Issue #916.
  • Es wurden Probleme behoben, bei denen die Bildlaufsteuerung nach dem Schließen eines anderen Anwendungsfensters nicht mehr funktionierte. Weitere Informationen finden Sie in den GitHub-Ausgaben #9292 und #9355.
  • Ein Absturz wurde behoben, wenn DebugSettings.EnableFrameRateCounter auf true gesetzt wurde, bevor das erste Bild gerendert wurde. Weitere Informationen finden Sie im GitHub-Issue #2835.
  • Ein möglicher Kompilierfehler für C++ wurde behoben, bei dem einige Header nicht die notwendigen Abhängigkeiten enthielten. Beachten Sie, dass sich die Änderung der Reihenfolge #include auf einige Anwendungen auswirken kann, z. B. durch einen Kompilierfehler für IInspectable, wenn die Anwendung eine Version von C++/WinRT verwendet, die älter als 2023 ist. Weitere Informationen finden Sie im GitHub-Issue #9014.
  • Es wurde ein Problem behoben, bei dem ElementName Bindungen innerhalb der ItemsRepeaterDataTemplatenicht funktionierten. Weitere Informationen finden Sie im GitHub-Issue #560.
  • Es wurden Abstürze behoben, wenn eine Anwendung unter Visual Studio mit aktivierter In-App-Symbolleiste ausgeführt wurde. Visual Studio 17.8 Preview 2 oder höher ist erforderlich, um die Korrekturen vollständig nutzen zu können. Weitere Informationen finden Sie im GitHub-Issue #8806.
  • Es wurde ein Problem behoben, bei dem AnnotatedScrollbar manchmal abstürzen konnte, wenn man schnell scrollte.
  • Ein Problem wurde behoben, bei dem der Menütext manchmal abgeschnitten wurde.
  • Es wurde ein Problem behoben, bei dem Lehrtipps keinen richtigen Fokus erhalten haben. Weitere Informationen finden Sie im GitHub-Issue #3257.
  • Es wurde ein Problem behoben, das zum Absturz der Anwendung führte, wenn beim Start TailVisibility von TeachingTip auf Collapsed gesetzt wurde. Weitere Informationen finden Sie im GitHub-Issue #8731.
  • Ein Problem mit der Behandlung von PRI-Dateien bei der Verwendung von Bibliotheken wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #8857.
  • Es wurde ein Problem aus der Version 1.5-experimental2 behoben, bei der die Projektions-DLL nicht generiert wurde. Weitere Informationen finden Sie im GitHub-Issue #4152.
  • Es wurde ein Problem behoben, bei dem die Schaltfläche mit den Auslassungspunkten im Popup „Textformatierung“ der RichEditBox Liste der Aktionen nicht ordnungsgemäß angezeigt wurde. Weitere Informationen finden Sie im GitHub-Issue #9140.
  • Es wurde ein Problem behoben, bei dem die ListView Tastenkombinationen nicht ordnungsgemäß behandelt wurden. Weitere Informationen finden Sie im GitHub-Issue #8063.
  • Ein Zugriffsverletzungsproblem mit der Verwendung AccessKey zum Schließen eines Fensters wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #8648.
  • Es wurde ein Absturz behoben, wenn ein AccessKey zum Schließen eines Fensters verwendet wurde. Weitere Informationen finden Sie im GitHub-Issue #9002.
  • Es wurde ein Problem behoben, das sich auf die Textausrichtung in einem MenuFlyoutItem innerhalb eines MenuBar auswirkt. Weitere Informationen finden Sie im GitHub-Issue #8755.
  • Es wurde ein Problem behoben, bei dem hervorgehobener Text nach einem Rechtsklick nicht hervorgehoben blieb. Weitere Informationen finden Sie im GitHub-Issue #1801.
  • Es wurde ein Problem behoben, das dazu führte, dass inaktive Fenster beim Schließen der App abstürzten. Weitere Informationen finden Sie im GitHub-Issue #8913.
  • Es wurde ein Problem behoben, das dazu führen konnte, dass Anwendungen hängen blieben, wenn mit der mittleren Maustaste gescrollt und unmittelbar danach mit der linken Maustaste geklickt wurde. Weitere Informationen finden Sie im GitHub-Issue #9233.
  • Das Problem, das dazu führte, dass Apps beim Start abstürzen, wenn sie eine benutzerdefinierte NavigationViewItem verwenden, wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #8814.
  • Das Problem mit NavigationView wurde behoben, bei dem die Schaltfläche mit den Auslassungspunkten fälschlicherweise einen Fehler generierte. Weitere Informationen finden Sie im GitHub-Issue #8380.
  • Es wurde ein Problem behoben, bei dem SystemBackdrop nicht ordnungsgemäß in einer App mit mehreren Fenstern gerendert wurde. Weitere Informationen finden Sie im GitHub-Issue #8423.
  • Ein Duplizierungsproblem beim Einfügen an den Anfang von ObservableCollection wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #8370.