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 SDK per app di Windows. L'argomento equivalente per altre opzioni di confezionamento dipendenti dal framework è la guida alla distribuzione di SDK per app di Windows per le app dipendenti dal framework confezionate con percorso esterno o non confezionate.
Overview
Per impostazione predefinita, quando crei 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 (vedi Creare un pacchetto MSIX con un singolo progetto) o un progetto di creazione pacchetti di applicazioni Windows (vedi 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 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 SDK per app di Windows, vedere Architettura di distribuzione per l'architettura SDK per app di Windows. 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 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 si installa una versione stabile del pacchetto NuGet SDK per app di Windows 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 SDK per app di Windows nel computer di sviluppo, durante la fase di compilazione viene distribuita una versione di anteprima del pacchetto framework SDK per app di Windows come dipendenza del pacchetto NuGet.
Chiamare l'API di distribuzione
Vedere anche Initialize the SDK per app di Windows.
L'API di distribuzione viene fornita dal pacchetto framework SDK per app di Windows 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 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). È 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 SDK per app di Windows, restituisce un codice di errore che descrive il problema.
La tabella seguente elenca i codici di errore comuni dell'API di distribuzione e le relative cause tipiche:
| Codice di errore | Name | Causa comune |
|---|---|---|
| 0x80070005 | ACCESS_DENIED | L'app non è a attendibilità completa oppure non dispone della funzionalità limitata packageManagement. Eseguire con privilegi elevati o aggiungere la funzionalità richiesta. |
| 0x80073CF0 | ERROR_INSTALL_OPEN_PACKAGE_FAILED | Il pacchetto MSIX è danneggiato o inaccessibile. Verificare che il file del pacchetto sia intatto e che il percorso sia corretto. |
| 0x80073CF3 | ERROR_INSTALL_PREREQUISITE_FAILED | Un pacchetto di dipendenza obbligatorio è mancante o incompatibile. Verificare che il pacchetto del framework VCLibs e tutti gli altri prerequisiti siano installati. |
| 0x80073D06 | ERRORE_PACCHETTI_IN_USO | Uno o più pacchetti sono in uso e non possono essere aggiornati. Chiudere tutte le app usando il runtime di SDK per app di Windows, quindi riprovare. |
| 0x80073CFB | ERROR_PACKAGE_ALREADY_EXISTS | La versione del pacchetto è già registrata. È solo a scopo informativo: la tua app può proseguire. |
| 0x80073CF9 | Errore installazione fallita | Errore di installazione generale. Controllare i registri eventi per altri dettagli (vedere di seguito). |
Suggerimento
Per l'elenco completo dei codici di errore di installazione dei pacchetti MSIX, vedere Risoluzione dei problemi di creazione di pacchetti, distribuzione e query delle app 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). I log eventi si trovano in Visualizzatore eventi in Registri applicazioni e servizi>Microsoft>Windows>AppxDeployment-Server.
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.
Argomenti correlati
- architettura Architettura di distribuzione per SDK per app di Windows
- Guida alla distribuzione di SDK per app di Windows per le app dipendenti dal framework confezionate con posizione esterna o non confezionate
- Canali di rilascio
- Confeziona la tua app utilizzando MSIX a progetto unico
- Che cos'è MSIX?
- Risoluzione dei problemi di creazione di pacchetti, distribuzione e query delle app di Windows
- Creazione di un pacchetto per un'app desktop o UWP in Visual Studio
- Gestire la distribuzione MSIX