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.
MSIX supporta quattro tipi di pacchetto: Main, Framework, Resource e Optional. MSIX supporta anche i pacchetti bundle, ovvero contenitori di distribuzione per uno o più pacchetti MSIX.
Un tipo di pacchetto definisce una combinazione di distribuzione, dipendenza, esecuzione e comportamento di manutenzione. Alcuni comportamenti sono intrinseci al tipo, mentre una dichiarazione nel manifesto può eseguire l'override di altre impostazioni predefinite.
| Type | Scopo principale | Manifest o indicatore di identità |
|---|---|---|
| Principale | Pacchetto primario per un'applicazione | Nessuna dichiarazione per un altro tipo di pacchetto |
| Framework | Librerie, componenti o contenuto di runtime condivisi | <Framework>true</Framework> |
| risorsa | Risorse specifiche del linguaggio, della scala o del qualificatore | <ResourcePackage>true</ResourcePackage> |
| Facoltativo | Contenuto aggiuntivo associato a un pacchetto principale | <uap3:MainPackageDependency> |
| Aggregazione | Contenitore di distribuzione per più pacchetti MSIX | Manifest del bundle e valore ResourceId di ~ |
Pacchetti principali
Un pacchetto Main rappresenta il pacchetto primario per un'applicazione. Può dichiarare applicazioni, funzionalità, dipendenze, estensioni e server out-of-process.
Il manifest non contiene un marcatore Main-package esplicito. Un pacchetto è un pacchetto Main quando non si dichiara come un altro tipo di pacchetto.
Pacchetti Framework
Un pacchetto Framework fornisce librerie condivise, componenti, risorse o altro contenuto di runtime. Altri pacchetti o processi aggiungono il pacchetto Framework al grafo dei pacchetti prima di caricarne il contenuto.
I pacchetti framework supportano versioni side-by-side in modo che le applicazioni possano passare a versioni più recenti in modo indipendente. Un pacchetto dichiara questo tipo impostando l'elemento manifesto framework su true.
Per informazioni sull'uso di pacchetti Framework da processi in pacchetto e non in pacchetto, vedere Usare l'API di dipendenza dinamica.
Pacchetti di risorse
Un pacchetto di risorse separa le risorse specifiche della lingua, della scala di visualizzazione o altre risorse specifiche del qualificatore da un pacchetto principale o facoltativo. Windows installa solo i pacchetti di risorse applicabili a un dispositivo o a un utente.
I pacchetti di risorse non consentono l'esecuzione per impostazione predefinita. Un pacchetto può eseguire l'override di questa impostazione predefinita con uap6:AllowExecution. Un pacchetto dichiara il tipo di risorsa impostando ResourcePackage su true.
Pacchetti facoltativi
Un pacchetto opzionale contiene contenuto aggiuntivo per un pacchetto principale specifico. Ad esempio, un'applicazione può inserire mappe scaricabili, asset ad alta risoluzione o strumenti facoltativi in pacchetti separati.
A differenza di un pacchetto Framework, un pacchetto facoltativo è associato a una famiglia di pacchetti principale. Dichiara tale relazione tramite uap3:MainPackageDependency.
Per i requisiti di authoring e relativi ai set correlati, vedere Pacchetti facoltativi e authoring di set correlati.
Pacchetti bundle
Un bundle MSIX (.msixbundle) contiene uno o più pacchetti MSIX. Un pacchetto bundle fornisce un artefatto di distribuzione, consentendo al tempo stesso a Windows di installare solo l'architettura e i pacchetti di risorse applicabili al dispositivo di destinazione.
Tutti i pacchetti in un bundle appartengono alla stessa famiglia di pacchetti. Un bundle è un contenitore anziché un quinto tipo di pacchetto distribuibile.
Identificare i tipi di pacchetto nel codice
La classe Windows.ApplicationModel.Package espone proprietà che identificano un tipo di pacchetto:
static string GetPackageType(Windows.ApplicationModel.Package package)
{
if (package.IsBundle)
{
return "Bundle";
}
if (package.IsFramework)
{
return "Framework";
}
if (package.IsResourcePackage)
{
return "Resource";
}
if (package.IsOptional)
{
return "Optional";
}
return "Main";
}
Identificare i tipi di pacchetto con PowerShell
Per impostazione predefinita, Get-AppxPackage restituisce pacchetti Main e Framework. Usare -PackageTypeFilter per includere altri tipi:
Get-AppxPackage -PackageTypeFilter Main,Framework,Resource,Optional,Bundle |
Select-Object Name, PackageFullName, IsFramework, IsResourcePackage, IsBundle
L'oggetto di output non espone una IsOptional proprietà. Usare il filtro per includere pacchetti facoltativi e ispezionarne il manifesto o la relazione del pacchetto quando è necessario distinguerli.