Condividi tramite


Note di rilascio più recenti del canale stabile per Windows App SDK

Il canale stabile fornisce versioni di Windows App SDK supportati per l'uso da parte delle app negli ambienti di produzione. Le app che usano la versione stabile del Windows app SDK possono anche essere pubblicate in Microsoft Store.

Collegamenti importanti:

Archivio note sulla versione del canale Stabile:

Vedere Download per Windows App SDK.

Nota

Le estensioni di Visual Studio (VSIX) di Windows App SDK non vengono più distribuite come download separato. Sono disponibili in Visual Studio Marketplace all'interno di Visual Studio.

Versione 1.7

In un'app Windows App SDK esistente è possibile aggiornare il pacchetto Nuget alla versione 1.7.250401001 (vedere la sezione Aggiornare un pacchetto in Installare e gestire pacchetti in Visual Studio usando Gestione pacchetti NuGet).

Per il runtime e l'MSIX aggiornati, vedere anche Download per il Windows App SDK.

Versione 1.7.1 (1.7.250401001)

Si tratta di una versione di manutenzione di Windows App SDK che include correzioni di bug critiche per la versione 1.7.

  • Sono stati migliorati i dati di telemetria per gli scenari di errore specifici in WindowsAppRuntimeInstall-<arch>.exe. Per altre informazioni, vedere Problema di GitHub #5289. (RuntimeCompatibilityChange: N/A, modifica del programma di installazione)
  • È stato risolto un problema per cui l'input del puntatore smetteva di funzionare quando si usano i tasti di direzione contemporaneamente. Per altre informazioni, vedere Problema di GitHub #10126. (RuntimeCompatibilityChange: FixStuckPointerInputQueue)
  • È stato risolto un problema a causa del quale le app nel desktop remoto smette di rispondere all'input del puntatore. Per altre informazioni, vedere Problema di GitHub #10009. Si tratta della stessa correzione dell'input del puntatore e dei tasti di direzione, dovuta al desktop remoto che invia automaticamente alcuni input di tasti durante il passaggio da e verso la sessione. (RuntimeCompatibilityChange: FixStuckPointerInputQueue)
  • Correzione di un potenziale arresto anomalo del sistema che tenta di ripristinare lo stato attivo se viene recapitato un evento di attivazione della finestra per una finestra che sta chiudendo. (RuntimeCompatibilityChange: Correzione del crash di chiusura finestra con messa a fuoco)
  • Correzione di una regressione delle prestazioni introdotta in WinAppSDK 1.6 a causa di file binari WinUI mancanti alcune ottimizzazioni del linker. (RuntimeCompatibilityChange: N/A, opzioni del linker modificate)
  • Corretta un'eventuale crash quando ProgressBar::SetProgressBarIndicatorWidth viene chiamato su un ProgressBar che non si trova nell'albero. (ModificaCompatibilitàRuntime: CorrezioneCrashSetLarghezzaIndicatoreBarraProgressi)
  • Correzione di un potenziale arresto anomalo causato da CPopup::EnsureBridgeClosed che a volte attiva la rientranza. (RuntimeCompatibilityChange: FixPopupClosingReentrancyCrash)
  • Corretto un potenziale arresto anomalo durante la chiusura di un popup a causa di CUIElement::FlushPendingKeepVisibleOperations che utilizza una raccolta di elementi figlio nulla. (RuntimeCompatibilityChange: FixPopupUnloadingCrash)
  • Corretto PackageDeploymentManager.EnsurePackage*Ready per garantire la sostituzione della versione. Per altre informazioni, vedere Problema di GitHub #5191. (CambioCompatibilitàRuntime: GarantisciVersioneProntaPacchettoSupercedenza)
  • Corretto un potenziale arresto anomalo causato da WebView2::UpdateCoreWebViewVisibility che a volte attiva la reentrancy. Per altre informazioni, vedere Problema di GitHub #10305. (RuntimeCompatibilityChange: FixWebViewVisibilityReentrancyCrash)
  • È stato risolto un problema a causa del quale l'interfaccia utente dell'app talvolta si blocca in modo permanente e può interrompere il rendering a causa del blocco di DispatcherQueue. (RuntimeCompatibilityChange: FixRandomUIFreezeInDispatcher)

Versione 1.7.0 (1.7.250310001)

Le sezioni seguenti descrivono le funzionalità nuove e aggiornate e i problemi noti per la versione 1.7.

Nuova funzionalità di notifiche per i badge

Il badge di notifica indica un riepilogo o informazioni sullo stato specifiche di un'app. Può essere numerico (1-99) o un glifo da uno dei glifi forniti dal sistema. Questa nuova funzionalità offre un modo semplice per mostrare lo stato delle app, ad esempio il numero di messaggi non letti in un'app di posta elettronica o il numero di nuovi post in un'app di social media.

Per altre informazioni, vedere GitHub #4926.

Nuova API CameraCaptureUI

Gli sviluppatori hanno riscontrato problemi negli ambienti desktop a causa del fatto che WinRT CameraCaptureUI dipende da CoreWindows e la mancanza di supporto InitializeWithWindow. Il team ha rilasciato questa nuova Microsoft.Windows.Media.Capture.CameraCaptureUI API a WinAppSDK per fornire una soluzione semplificata con parità delle funzionalità, ora supportando WindowID nel costruttore per migliorare la compatibilità dei desktop.

Per altre informazioni, vedere Problema di GitHub #4721.

Nuova API di autenticazione

Una nuova API OAuth2Manager offre una soluzione semplificata per l'autenticazione Web, offrendo funzionalità OAuth 2.0 con parità completa delle funzionalità in tutte le piattaforme Windows supportate da Windows App SDK. Questo nuovo gestore di autenticazione è diverso dall'API WebAuthentication Broker pubblica, in quanto è più allineato alle procedure consigliate di OAuth.

Per altre informazioni, vedere Problema di GitHub #4772.

Nuovo supporto per le attività in background

Le attività in background sono componenti dell'app che vengono eseguiti in background senza un'interfaccia utente, eseguendo azioni come i file di download, la sincronizzazione dei dati, l'invio di notifiche o l'aggiornamento di file. La nuova API BackgroundTaskBuilder consente alle app dipendenti da WinAppSDK di registrare direttamente i componenti COM a piena fiducia con attività in background, eliminando la necessità di implementare una soluzione alternativa.

Per altre informazioni, vedere GitHub #4831.

Nuovo controllo TitleBar

Un nuovo controllo TitleBar semplifica notevolmente la creazione di un'ottima barra del titolo personalizzabile per la tua app. Configurare proprietà come l'icona della barra del titolo, titolo e sottotitolo, includere un pulsante Indietro integrato o persino aggiungere un controllo personalizzato come una casella di ricerca. Il controllo include funzionalità robuste della barra del titolo, ad esempio aree trascinabili a spazi vuoti, velocità di risposta del tema, pulsanti di didascalia e supporto per l'accessibilità predefinita, in modo da poter concentrarsi sulla progettazione personalizzata e ottenere comunque la stessa barra del titolo affidabile dell'esperienza predefinita.

Per altre informazioni, vedere GitHub #10056.

Supporto per MathML

RichEditBox ora supporta MathML, tramite RichEditTextDocument.SetMathMode e RichEditTextDocument.SetMathML.

Per altre informazioni, vedere GitHub #4196.

Runtime migliorato

  • Le API dipendenze dinamiche di Windows App SDK delegano tutte le chiamate all'implementazione di Windows 11 quando vengono eseguite in >= Windows 11 24H2 (10.0.26100.0) offrendo prestazioni e affidabilità migliorate. Questo vale per tutte le API C/C++ (Mdd*()) e WinRT (spazio dei nomi Microsoft.Windows.ApplicationModel.DynamicDependency).
    • I processi in pacchetto che chiamano le API dipendenze dinamiche di Windows App SDK sono ora supportati in >= Windows 11 24H2 (10.0.26100.0). Questa funzionalità non è ancora supportata nei sistemi meno recenti (l'implementazione di WinAppSDK non supporta le app in pacchetto).
    • Questo non ha alcun impatto sull'esperienza di sviluppo. Gli utenti possono continuare a usare l'API Bootstrapper per aggiungere il pacchetto framework WinAppSDK al grafo dei pacchetti del processo chiamante.
    • Per altre informazioni, vedere GitHub PR #4949.
  • WinRT (URFW) senza registrazione non è abilitato in >= Windows 11 24H2 (10.0.26100.0). L'implementazione del sistema operativo gestisce tutte le attività WinRT senza registrazione in questi sistemi, offrendo prestazioni e affidabilità migliorate. Per altre informazioni, vedere GitHub PR #4949.
  • La deviazione non viene usata in >= Windows 11 24H2 (10.0.26100.0). La deviazione è stata usata solo dalle implementazioni di Windows App SDK di Dipendenze dinamiche e WinRT senza registrazione, ma poiché queste funzionalità sono ora gestite dalle implementazioni del sistema operativo non è necessario inizializzare o collegare in altro modo Detour. Ciò offre un piccolo miglioramento delle prestazioni durante il caricamento di Microsoft.WindowsAppRuntime.dll. Per altre informazioni, vedere GitHub PR #4949.

Nuove API AppWindow

Le nuove AppWindow API semplificano il controllo delle finestre delle app per creare un'esperienza ottimale. Le nuove funzionalità includono l'uso SetTaskBarIcon di e SetTitleBarIcon per impostare in modo indipendente le icone della barra delle applicazioni e della barra del titolo, usando AppWindowTitleBar.PreferredTheme per impostare il tema chiaro/scuro della barra del titolo e usando nuove proprietà come OverlappedPresenter.PreferredMinimumWidth e OverlappedPresenter.PreferredMaximumHeight per impostare una larghezza o un'altezza minima o massima per la finestra.

Nuove API dell'isola

Gli aggiornamenti nello spazio dei nomi Microsoft.UI.Content introducono diversi miglioramenti significativi e nuove funzionalità volte a migliorare le funzionalità e l'interoperabilità delle API ContentIsland. Queste modifiche sono progettate per supportare nuovi scenari di hosting, migliorare le funzionalità di rendering e garantire una migliore sincronizzazione degli stati di input e accessibilità. Gli aggiornamenti principali includono:

  1. Nuove primitive per l'hosting di ContentIslands:
    • DesktopPopupSiteBridge: abilita l'hosting di un ContentIsland oggetto nell'ambiente di una finestra Win32 con WS_POPUP stile, semplificando gli scenari in cui le applicazioni usano finestre popup per finestre di dialogo e finestre di messaggio.
    • ChildSiteLink: consente a un padre ContentIsland di ospitare un elemento figlio ContentIslandannidato, fornendo un partizionamento senza interruzioni della superficie di rendering senza l'esperienza utente.
    • DesktopAttachedSiteBridge: si collega a una finestra Win32 esistente anziché crearne una nuova, progettata per ospitare un ContentIsland oggetto con Windows.UI.Composition.Visuals nella radice della gerarchia delle finestre Win32, garantendo il controllo completo sull'elaborazione e l'accessibilità basati su Win32.
  2. Rendering avanzato e sincronizzazione dell'input:
    • Le LocalToParentTransformMatrix proprietà e ActualSize di un ChildSiteLink oggetto vengono aggiornate rispetto all'elemento padre ContentIsland prima del rendering, evitando la latenza e garantendo stati di input e accessibilità sincronizzati.
  3. ContentIslands con Windows.UI.Composition.Visuals:
    • ContentIsland può usare Windows.UI.Composition.Visuals per il rendering e le API finestra Win32 per l'elaborazione dell'input, abilitando l'interoperabilità con le applicazioni che usano framework UX legacy. Ciò consente un'adozione graduale di framework di esperienza utente più recenti su più livelli su Windows App SDK Scene Graph, ad esempio WinUI e React Native per Windows in Fabric. Questi aggiornamenti migliorano collettivamente la flessibilità, le prestazioni e l'interoperabilità delle API ContentIsland, consentendo agli sviluppatori di creare applicazioni più sofisticate e reattive.

Inoltre, gli aggiornamenti nello spazio dei nomi Microsoft.UI.Xaml introducono una nuova XamlIsland API, che consente l'hosting di contenuto Xaml all'interno di un SiteBridge o di un oggetto ChildSiteLink. Offre XamlIsland una maggiore flessibilità rispetto all'API DesktopWindowXamlSource . Anche se DesktopWindowXamlSource richiede l'hosting all'interno di una finestra Win32 esistente, espone XamlIsland un ContentIsland, abilitando altre opzioni per l'hosting di contenuto Xaml.

Altre modifiche rilevanti

  • Il nuovo supporto RuntimeCompatibilityOptions consentirà un maggiore controllo sul modo in cui le modifiche di manutenzione influiscono sulle app. Per altre informazioni, vedere GitHub #4966.
  • Una nuova API ReleaseInfo consente di accedere facilmente alla versione di Windows App SDK Runtime in uso. Per altre informazioni, vedere GitHub #2893.
  • Nota: le API di Windows Copilot Runtime non sono incluse in questa versione. Per sperimentare queste API, continuare a usare la versione 1.7-experimental3 e condividere i commenti e i suggerimenti.

Nuove API per la versione 1.7.0

Questa versione include le nuove API seguenti rispetto alla versione stabile 1.6:

Microsoft.Security.Authentication.OAuth

    AuthFailure
    AuthRequestParams
    AuthRequestResult
    AuthResponse
    ClientAuthentication
    CodeChallengeMethodKind
    OAuth2Manager
    TokenFailure
    TokenFailureKind
    TokenRequestParams
    TokenRequestResult
    TokenResponse
Microsoft.UI.Content

    ChildSiteLink
    ContentAutomationOptions
    ContentEnvironmentStateChangedEventArgs
        DidDisplayScaleChange

    ContentIsland
        AutomationOption
        Children
        CreateForSystemVisual
        FindAllForSystemCompositor
        FragmentRootAutomationProvider
        GetBySystemVisual
        LocalToClientTransformMatrix
        LocalToParentTransformMatrix
        NextSiblingAutomationProvider
        ParentAutomationProvider
        Popups
        PreviousSiblingAutomationProvider
        ProcessesKeyboardInput
        ProcessesPointerInput

    ContentIslandEnvironment
        DisplayScale

    ContentIslandStateChangedEventArgs
        DidLocalToClientTransformMatrixChange
        DidLocalToParentTransformMatrixChange

    ContentSite
        LocalToClientTransformMatrix
        LocalToParentTransformMatrix
        ProcessesKeyboardInput
        ProcessesPointerInput

    ContentSiteAutomationProviderRequestedEventArgs
    ContentSiteEnvironment
        DisplayScale

    ContentSiteEnvironmentView
        DisplayScale

    ContentSiteView
        AutomationOption
        LocalToClientTransformMatrix
        LocalToParentTransformMatrix
        ProcessesKeyboardInput
        ProcessesPointerInput

    DesktopAttachedSiteBridge
    DesktopChildSiteBridge
        CreateWithDispatcherQueue

    DesktopPopupSiteBridge
    IContentSiteAutomation
    IContentSiteInput
    IContentSiteLink
Microsoft.UI.Input

    InputFocusNavigationHost
        GetForSiteLink
Microsoft.UI.Text

    RichEditTextDocument
        GetMathML
        GetMathMode
        SetMathML
        SetMathMode
Microsoft.UI.Windowing

    AppWindow
        SetTaskbarIcon
        SetTaskbarIcon
        SetTitleBarIcon
        SetTitleBarIcon

    AppWindowTitleBar
        PreferredTheme

    OverlappedPresenter
        PreferredMaximumHeight
        PreferredMaximumWidth
        PreferredMinimumHeight
        PreferredMinimumWidth

    TitleBarTheme
Microsoft.UI.Xaml

    XamlIsland
    XamlRoot
        ContentIsland
Microsoft.UI.Xaml.Controls

    TitleBar
    TitleBarAutomationPeer
    TitleBarTemplateSettings
Microsoft.Windows.ApplicationModel.Background

    BackgroundTaskBuilder
Microsoft.Windows.ApplicationModel.Background.UniversalBGTask

    Task
Microsoft.Windows.ApplicationModel.WindowsAppRuntime

    ReleaseInfo
    RuntimeCompatibilityChange
    RuntimeCompatibilityOptions
    RuntimeInfo
    WindowsAppRuntimeVersion
Microsoft.Windows.BadgeNotifications

    BadgeNotificationGlyph
    BadgeNotificationManager
Microsoft.Windows.Media.Capture

    CameraCaptureUI
    CameraCaptureUIMaxPhotoResolution
    CameraCaptureUIMaxVideoResolution
    CameraCaptureUIMode
    CameraCaptureUIPhotoCaptureSettings
    CameraCaptureUIPhotoFormat
    CameraCaptureUIVideoCaptureSettings
    CameraCaptureUIVideoFormat

Correzioni di bug

Questa versione include le seguenti correzioni di bug:

  • Modificata SplitButton in modo che l'input tocco ora corrisponda al comportamento dell'input del mouse. Per altre informazioni, vedere Problema di GitHub #178.
  • Modifica dei menu a catena in modo che i menu secondari vengano aperti immediatamente se si fa clic. Per altre informazioni, vedere Problema di GitHub #939.
  • È stato risolto un problema in cui aprire un ComboBox in un riquadro a comparsa chiude tutti i riquadri a comparsa. Per altre informazioni, vedere Problema di GitHub #1467.
  • Un problema in cui SwipeControl si arrestava in modo casuale in un ListViewè stato risolto. Per altre informazioni, vedere Problema di GitHub #2527.
  • È stato risolto un problema per cui trascinare e rilasciare solo un ListViewItem lo lasciava nello stato visivo errato. Per altre informazioni, vedere Problema di GitHub #3458.
  • È stato risolto un problema in StackLayout in modo che vengano rispettate le proprietà ItemsRepeater.HorizontalAlignment e ItemsRepeater.VerticalAlignment, rispettivamente quando StackLayout.Orientation è Vertical e Horizontal. Il layout precedente si comportava come se l'allineamento di ItemsRepeater fosse impostato su Stretch. Con la correzione, il layout restituisce elementi allineati a destra quando viene usato l'allineamento a destra, ad esempio. Per altre informazioni, vedere Problema di GitHub #3842.
  • Correzione di un potenziale arresto anomalo quando si usa una risorsa che contiene un oggetto x:Bind. Per altre informazioni, vedere Problema di GitHub #5786.
  • È stato risolto un problema per cui l'eliminazione di elementi nell'origine del ItemsRepeater non rendeva visibili gli elementi che si spostavano in alto nella visualizzazione. Per altre informazioni, vedere Problema di GitHub #6661.
  • È stato risolto un problema per cui il tasto ALT destro non visualizzava i suggerimenti per i tasti di scelta. Per altre informazioni, vedere Problema di GitHub #8447. Nota: Questo può comportare che gli eventi principali per il tasto ALT destro non siano più recapitati ai gestori o controlli dell'app.
  • È stato risolto un problema per cui l'uso di un ResourceDictionary contenente solo una singola risorsa non riusciva a trovare tale risorsa e probabilmente causava un arresto anomalo. Per altre informazioni, vedere Problema di GitHub #8832.
  • È stato risolto un crash di sistema in cui UniformGridLayout a volte selezionava un ancoraggio di layout errato e causava infinite iterazioni di layout scorrendo verso l'alto. Per altre informazioni, vedere Problema di GitHub #9199.
  • È stato risolto un problema per cui l'impostazione di NavigationFailedEventArgs.Handled su True generava comunque un'eccezione. Per altre informazioni, vedere Problema di GitHub #9632.
  • È stato risolto un problema per cui TabView non applicava alcun CornerRadiusspecificato. Per altre informazioni, vedere Problema di GitHub #9846.
  • Abbiamo corretto un potenziale arresto anomalo del ciclo di layout in StackLayout. Per altre informazioni, vedere Problema di GitHub #9852.
  • Risolto un potenziale arresto anomalo in ItemsView durante la rimozione di elementi. Per altre informazioni, vedere Problema di GitHub #9868.
  • È stato risolto un problema nella versione 1.7-preview1 in cui i popup non venivano più spostati correttamente con la finestra padre. Per altre informazioni, vedere Problema di GitHub #10386.
  • In base al feedback della versione 1.7-preview1, sono state rinominate alcune proprietà nel nuovo TitleBar controllo.