Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce indicazioni sulla distribuzione di app in pacchetto dipendenti dal framework (vedere Che cos'è MSIX?) che usano il Windows App SDK. L'argomento equivalente per altre opzioni di confezionamento dipendenti dal framework è la guida alla distribuzione di Windows App SDK per le app dipendenti dal framework confezionate con percorso esterno o non confezionate.
Overview
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 Package l'app usando MSIX) o un progetto di creazione di pacchetti di applicazioni Windows (vedere Impostare 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 Pacificare un'app desktop o UWP in Visual Studio. Dopo aver compilato un pacchetto MSIX per la tua app, sono disponibili diverse opzioni per gestire la distribuzione MSIX.
Per altre informazioni sui pacchetti necessari per l'app in pacchetto quando usa il Windows App SDK, vedere Architettura di distribuzione per l'architettura Windows App SDK. Questi includono 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:
Prerequisites
- Per le app in pacchetto, la dipendenza del pacchetto framework VCLibs è un requisito. Per altre informazioni, vedere pacchetti del framework di runtime C++ per Desktop Bridge.
- C#. .NET 6 o versione successiva è necessario. Per altre info, vedi .NET Downloads.
Distribuire il pacchetto framework Windows App SDK
Il pacchetto framework Windows App SDK contiene i file binari Windows App SDK usati in fase di esecuzione e viene installato con l'applicazione. Il framework ha requisiti di distribuzione diversi per i diversi canali del Windows App SDK.
Versione stabile
Quando si installa una versione stabile del pacchetto NuGet Windows App SDK nel computer di sviluppo e si crea un progetto usando uno dei modelli di progetto WinUI 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 un PackageReference nel file Application (package).wapproj, come indicato di seguito:
<ItemGroup>
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.260209005">
<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 del pacchetto NuGet Windows App SDK nel computer di sviluppo, durante la fase di compilazione viene distribuita una versione di anteprima del pacchetto framework Windows App SDK come dipendenza del pacchetto NuGet.
Chiamare l'API di distribuzione
Vedere anche Initialize the Windows App SDK.
L'API di distribuzione viene fornita dal pacchetto framework Windows App SDK ed è disponibile nel namespace 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, tu come sviluppatore sei 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).
Important
Solo le app in pacchetto con attendibilità totale o con funzionalità con restrizioni packageManagement hanno l'autorizzazione per usare l'API di distribuzione per installare le dipendenze del pacchetto Main e Singleton.
Devi chiamare l'API di distribuzione dopo l'inizializzazione del processo dell'app, ma prima che l'app usi Windows App SDK 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 Windows App SDK attualmente caricato. Usare questo metodo per identificare se è necessario installare Windows App SDK pacchetti di runtime prima che l'app corrente possa usare Windows App SDK funzionalità.
- Il metodo Initialize verifica se tutti i pacchetti necessari sono presenti a una versione minima necessaria per il runtime Windows App SDK attualmente caricato. Se mancano dipendenze del pacchetto, il metodo tenta di registrare i pacchetti mancanti. A partire da Windows App SDK 1.1, il metodo Initialize supporta anche l'opzione per forzare la distribuzione dei pacchetti di runtime Windows App SDK. 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). È consigliabile chiamare Initialize una sola volta. Non è necessario chiamare Initialize per le app distribuite tramite i comandi Start Without Debugging e Start Debugging in Visual Studio.
Important
Il valore predefinito della proprietà Visual Studio <WindowsAppSdkDeploymentManagerInitialize> è true. Pertanto, se si desidera chiamare DeploymentManager.Initialize in modo esplicito, impostare <WindowsAppSdkDeploymentManagerInitialize>false</WindowsAppSdkDeploymentManagerInitialize> nel file di progetto Visual Studio.
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 Windows App SDK, restituisce un codice di errore che descrive il problema.
Ad esempio, se l'app non è completamente attendibile o non ha la capacità packageManagement con restrizioni, 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 di packaging, distribuzione e 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, inviare un problema nel repository WindowsAppSDK GitHub con il codice di errore e i log eventi in modo da poter analizzare il problema.