Come viene generato il manifesto di un pacchetto dell'app da Visual Studio
Quando si compila un progetto con Visual Studio, Visual Studio genera un manifesto del pacchetto (AppxManifest.xml), che contiene le informazioni necessarie al sistema per distribuire, visualizzare o aggiornare un'app piattaforma UWP (Universal Windows Platform) (UWP).
Esistono due tipi di file manifesto del pacchetto dell'app che verranno rilevati quando si sviluppa un'app con Visual Studio
- Package.appxmanifest
Si tratta di un file di stile XML che gli sviluppatori usano per configurare i dettagli di un'app, ad esempio informazioni sull'editore, logo, architetture del processore e così via. Si tratta di una versione temporanea e facilmente configurabile del manifesto del pacchetto dell'app usato durante lo sviluppo dell'app. - AppxManifest.xml
Questo file viene generato dal processo Visual Studio compilazione e si basa sulle informazioni contenute nel file Package.appxmanifest. Questa è la versione finale del manifesto del pacchetto dell'app usato con le app pubblicate e caricate in sideloaded. Se vengono apportati aggiornamenti al file Package.appxmanifest, è necessario ricompilare il progetto per visualizzare gli aggiornamenti nel file AppxManifest.xml file.
Per una panoramica del processo di creazione di pacchetti, vedi Creare un pacchetto di un'app UWP con Visual Studio.
Convalida del manifesto dell'applicazione
Prima di poter pubblicare l'applicazione, devi correggere tutti gli errori per cui i controlli di convalida di Visual Studio non vengono superati. Quando Visual Studio genera il manifesto, Visual Studio convalida l'applicazione nei modi seguenti:
- Convalida sintattica
Visual Studio verifica che tutti i dati nel manifesto dell'applicazione siano conformi allo schema del manifesto dell'applicazione. - Convalida semantica
Visual Studio fornisce indicazioni sui dati previsti, in base al contesto delle informazioni.
Nota
Se queste sezioni non citano il campo che si sta cercando, vengono generati da dati che potrebbero essere stati configurati separatamente o da un valore predefinito dello schema del manifesto.
Generazione del contenuto del manifesto
Visual Studio compila i campi nelle tabelle seguenti quando genera il file AppxManifest.xml per il pacchetto dell'app.
Identità
La Identity
sezione del manifesto dell'app contiene i campi seguenti.
Campo | Descrizione |
---|---|
Nome | Nome del pacchetto, popolato in modo diverso negli scenari seguenti:
|
Publisher | Nome del server di pubblicazione. Questo nome cambia a seconda dei seguenti scenari:
|
Versione | Versione dell'app in fase di costruzione. Questo valore viene in genere incrementato ogni volta che l'app viene modificata e in pacchetto. Per assicurarsi che venga Version incrementato correttamente, usare la finestra di dialogo visualizzata quando si richiama Store -> Crea pacchetti dell'app... per eseguire gli aggiornamenti. |
ProcessorArchitecture | Valore generato in base alla configurazione di compilazione specificata per il progetto. Se i riferimenti al progetto o i riferimenti a file nel progetto hanno come destinazione un'architettura specifica diversa rispetto al pacchetto dell'app, viene generato un errore di compilazione ed è necessario modificare l'architettura di destinazione del pacchetto dell'app in modo che funzioni per tutti i riferimenti. |
Di seguito è riportato un esempio del codice Identity
XML di output:
<Identity Name="Microsoft.UWPAppExample"
Publisher="CN=Microsoft Corporation"
Version="1.0.0.0"
ProcessorArchitecture="x86" />
Proprietà
La Properties
sezione del manifesto dell'app contiene i campi nella tabella seguente.
Campo | Descrizione |
---|---|
PublisherDisplayName | Questa stringa viene popolata in modo diverso negli scenari seguenti:
|
DisplayName | Questa stringa cambia a seconda dei seguenti scenari:
|
Logo | Un Visual Studio predefinito verrà utilizzato da Assets\StoreLogo.png un modello. Questo valore deve essere personalizzato dallo sviluppatore nel file Package.appxmanifest. |
Di seguito è riportato un esempio del codice Properties
XML di output:
<Properties>
<DisplayName>UWP App Example</DisplayName>
<PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
Applicazione
Un manifesto dell'app può contenere Application
più elementi, ognuno dei quali ha un nome visualizzato nel riquadro nel client. La Application
sezione del manifesto dell'app contiene i campi nella tabella seguente.
Campo | Descrizione |
---|---|
Id | Questa stringa cambia a seconda dei seguenti scenari:
|
File eseguibile | Il valore di questo campo è il nome di output dell'assembly del progetto. Il token eseguibile $targetnametoken$.exe usato nel file manifesto di origine (Package.appxmanifest) viene sostituito con il nome file effettivo quando viene compilato il manifesto. |
EntryPoint | Questo valore è basato sui valori e Executable Id generati. |
Output di Application
esempio:
<Applications>
<Application Id="App" Executable="UWPAppExample.exe" EntryPoint="UWPAppExample.App">
<!-- Other elements configured within the Application, such as Extensions, VisualElements, etc. -->
</Applications>
PackageDependency
La PackageDependency
sezione contiene tutte le dipendenze Windows della libreria dei componenti per questo pacchetto. Ad esempio, se il progetto contiene un riferimento a WinJS, Visual Studio recupera le informazioni sull'identità del pacchetto delle dipendenze quando viene generato il manifesto. Visual Studio quindi popola questa sezione con i campi Name
MinVersion
e per ogni pacchetto dipendente.
In un progetto C++ nativo, Visual Studio aggiungerà un riferimento al runtime di Visual C/C++:
<Dependencies>
<PackageDependency Name="Microsoft.VCLibs.140.00.Debug" MinVersion="14.0.30035.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />
</Dependencies>
Windows Runtime di registrazione
È possibile implementare Windows Runtime per le app, ma è necessario registrare tali componenti con il sistema operativo per eseguirli correttamente. Per registrare un Windows Runtime, è necessario inserire le informazioni di registrazione nei file WinMD e nel manifesto dell'app. Se un progetto implementa un Windows Runtime, l'output di compilazione del progetto conterrà un file WinMD. Visual Studio estrae le Windows Runtime di registrazione dal file WinMD e genera gli elementi Extension
appropriati nel manifesto dell'app.
Il sistema supporta due forme di server: i server .dll (in-process) e i server .exe (out-of-process). Le informazioni di registrazione richieste da questi server sono simili e devono essere copiate nel manifesto dell'applicazione. Visual Studio supporta la generazione del manifesto solo per i server .dll. Per registrare i server .dll è richiesta l'estensione DLLServer. Per configurare l'estensione DLLServer vengono estratti dal file WinMD i valori seguenti nel manifesto dell'applicazione:
- DllPath
- ActivatableClassId
- ThreadingModel
- ActivatableClass (attributo ActivatableClassId)
Ecco un esempio di XML di output.
<extension category="Microsoft.Windows.ActivatableClass">
<dllServer>
<dllPath>Fabrikam.dll</dllPath>
<activatableClass activatableClassId="Fabrikam.MyClass" threadingModel="sta" />
</dllServer>
</extension>
Per altre informazioni su questo argomento, vedere Windows Runtime componenti.
Risorse
La Resources
sezione contiene una voce per ogni lingua che l'applicazione supporta. È necessario specificare almeno una lingua delle risorse nel manifesto dell'app. In Visual Studio, l'elenco delle lingue supportate viene automaticamente compilato in base alle informazioni di localizzazione nel progetto. Il token del linguaggio della risorsa "x-generate" usato nel file manifesto di origine (Package.appxmanifest) viene sostituito con il codice lingua effettivo quando viene compilato il manifesto. Ecco un esempio di XML di output.
<Resources>
<Resource Language="en-us">
<Resource Language="fr-fr">
</Resources>
La prima voce dell'elenco è la lingua predefinita per l'applicazione.
TargetDeviceFamily
La TargetDeviceFamily
sezione contiene i campi seguenti:
- Nome
- Versione minima
- MaxVersionTested
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.22000.0" />
</Dependencies>
Questi elementi vengono popolati MSBuild proprietà.
Vedi anche
Creare il pacchetto di un'app UWP con Visual Studio
Architetture per i pacchetti di app
Riferimento dello schema del manifesto del pacchetto per Windows 10