Guida alla distribuzione di SDK per app di Windows per le app in pacchetto dipendenti dal framework
Questo articolo fornisce indicazioni sulla distribuzione di app in pacchetto dipendenti dal framework (vedere Che cos'è MSIX?) che usano il SDK per app di Windows. L'argomento equivalente per altre opzioni di creazione di pacchetti dipendenti dal framework è SDK per app di Windows guida alla distribuzione per le app dipendenti dal framework in pacchetto con percorso esterno o senza pacchetti.
Panoramica
Per impostazione predefinita, quando si crea un progetto usando uno dei modelli WinUI 3 in Visual Studio, il progetto è configurato per compilare l'app in un pacchetto MSIX usando MSIX a progetto singolo (vedere Creare un pacchetto dell'app usando MSIX a progetto singolo) o un progetto di creazione pacchetti di applicazioni Windows (vedere Configurare l'applicazione desktop per la creazione di pacchetti MSIX in Visual Studio). Puoi quindi creare un pacchetto MSIX per la tua app usando le istruzioni riportate in Creare un pacchetto di un'app desktop o UWP in Visual Studio. Dopo aver compilato un pacchetto MSIX per l'app, sono disponibili diverse opzioni per gestire la distribuzione MSIX.
Per altre informazioni sui pacchetti necessari per l'app in pacchetto quando usa il SDK per app di Windows, vedere Architettura di distribuzione per il SDK per app di Windows. Sono inclusi i pacchetti Framework, Main e Singleton , che sono tutti firmati e pubblicati da Microsoft. Esistono due requisiti principali per la distribuzione di un'app in pacchetto:
- Distribuire il pacchetto framework SDK per app di Windows.
- Chiamare l'API di distribuzione.
Prerequisiti
- Per le app in pacchetto, la dipendenza del pacchetto framework VCLibs è un requisito. Per altre informazioni, vedi Pacchetti framework di runtime C++ per Desktop Bridge.
- C#. È necessario .NET 6 o versione successiva. Per altre informazioni, vedere Download di .NET.
Distribuire il pacchetto framework SDK per app di Windows.
Il pacchetto framework SDK per app di Windows contiene i file binari SDK per app di Windows usati in fase di esecuzione e viene installato con l'applicazione. Il framework ha requisiti di distribuzione diversi per i diversi canali del SDK per app di Windows.
Versione stabile
Quando installi una versione stabile (vedi note sulla versione del canale stabile) del pacchetto NuGet SDK per app di Windows nel computer di sviluppo e crei un progetto usando uno dei modelli di progetto WinUI 3 forniti, il manifesto del pacchetto generato contiene un elemento PackageDependency che specifica una dipendenza dal pacchetto framework.
Tuttavia, se crei manualmente il pacchetto dell'app usando un progetto di creazione pacchetti di applicazioni Windows separato, devi dichiarare packageReference nel Application (package).wapproj
file, come indicato di seguito:
<ItemGroup>
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.0.1">
<IncludeAssets>build</IncludeAssets>
</PackageReference>
</ItemGroup>
Tale dipendenza del pacchetto garantisce che il pacchetto Framework venga installato quando l'app viene distribuita in un altro computer.
Versione di anteprima
Quando si installa una versione di anteprima (vedere le note sulla versione del canale di anteprima) del pacchetto NuGet SDK per app di Windows nel computer di sviluppo, una versione di anteprima del pacchetto framework SDK per app di Windows viene distribuita durante la fase di compilazione come dipendenza del pacchetto NuGet.
Chiamare l'API di distribuzione.
Vedere anche Inizializzare il SDK per app di Windows.
L'API di distribuzione viene fornita dal pacchetto framework SDK per app di Windows ed è disponibile nello spazio dei nomi Microsoft.Windows.ApplicationModel.WindowsAppRuntime. Il modello di applicazione Windows non supporta la dichiarazione di una dipendenza dai pacchetti Main e Singleton. L'API di distribuzione è quindi necessaria per questi motivi:
- Per distribuire il pacchetto Singleton per le funzionalità non presenti nel pacchetto Framework ( ad esempio, le notifiche push).
- Per distribuire il pacchetto Principale, che consente gli aggiornamenti automatici al pacchetto Framework da Microsoft Store.
Per le app in pacchetto non distribuite tramite lo Store, l'utente come sviluppatore è responsabile della distribuzione del pacchetto framework. È consigliabile chiamare l'API di distribuzione in modo che tutti gli aggiornamenti di manutenzione critici vengano recapitati. Si noti che per l'uso di funzionalità esterne al pacchetto Framework (ad esempio, notifiche push), il pacchetto Singleton deve essere distribuito (questa operazione può essere eseguita con l'API di distribuzione o ridistribuendo i pacchetti MSIX usando il proprio metodo di installazione).
Importante
In SDK per app di Windows versione 1.0, solo le app in pacchetto con attendibilità totale o che dispongono della funzionalità con restrizioni packageManagement hanno l'autorizzazione per usare l'API di distribuzione per installare le dipendenze del pacchetto Main e Singleton. Il supporto per le app in pacchetto con attendibilità parziale sarà disponibile nelle versioni successive.
Devi chiamare l'API di distribuzione dopo l'inizializzazione del processo dell'app, ma prima che l'app usi SDK per app di Windows funzionalità di runtime che usano il pacchetto Singleton (ad esempio, le notifiche push). I metodi principali dell'API di distribuzione sono i metodi Statici GetStatus e Initialize della classe DeploymentManager .
- Il metodo GetStatus restituisce lo stato di distribuzione corrente del runtime SDK per app di Windows attualmente caricato. Usare questo metodo per identificare se è necessario installare SDK per app di Windows pacchetti di runtime prima che l'app corrente possa usare SDK per app di Windows funzionalità.
- Il metodo Initialize verifica se tutti i pacchetti necessari sono presenti a una versione minima necessaria per il runtime SDK per app di Windows attualmente caricato. Se mancano dipendenze del pacchetto, il metodo tenta di registrare i pacchetti mancanti. A partire da SDK per app di Windows 1.1, il metodo Initialize supporta anche l'opzione per forzare la distribuzione dei pacchetti di runtime SDK per app di Windows. Che arresta tutti i processi per i pacchetti di runtime Main e Singleton e quindi interrompe i servizi (ad esempio, le notifiche push non recapitano notifiche durante questo periodo).
App di esempio per le API di distribuzione
Per altre indicazioni su come usare i metodi GetStatus e Initialize della classe DeploymentManager , esplorare l'app di esempio disponibile.
Risolvere gli errori di installazione
Se l'API di distribuzione rileva un errore durante l'installazione dei pacchetti di runtime SDK per app di Windows, restituisce un codice di errore che descrive il problema.
Ad esempio, se l'app non è completamente attendibile o non ha la funzionalità con restrizioni packageManagement , si otterrà un codice di errore ACCESS_DENIED . Per esaminare altri codici di errore che possono verificarsi e le possibili cause, vedere Risoluzione dei problemi relativi alla creazione di pacchetti, alla distribuzione e alle query delle app di Windows.
Se il codice di errore non fornisce informazioni sufficienti, è possibile trovare altre informazioni di diagnostica nei log eventi dettagliati (vedere Ottenere informazioni di diagnostica).
Se si verificano errori che non è possibile diagnosticare, segnalare un problema nel repository GitHub WindowsAppSDK con il codice di errore e i registri eventi in modo da poter analizzare il problema.