Generazione dei componenti del pacchetto MSIX

Questo articolo illustra come generare i componenti del pacchetto MSIX per creare il pacchetto della tua applicazione usando gli strumenti da riga di comando (senza usare Visual Studio o MSIX Packaging Tool).

Per creare manualmente il pacchetto dell'app, devi creare un file manifesto del pacchetto, aggiungere i componenti del pacchetto e quindi eseguire lo strumento della riga di comando MakeAppx.exe che consente di generare un pacchetto MSIX.

Prima di tutto, prepararsi per la creazione del pacchetto

Se non l'hai ancora fatto, rivedi questa sezione in Cosa bisogna sapere prima di creare il pacchetto di un'applicazione.

Creare un manifesto del pacchetto

Crea un file, assegnagli il nome appxmanifest.xml e quindi aggiungi al file il codice XML seguente.

Questo è un modello di base contenente gli elementi e gli attributi richiesti dal pacchetto. A questi verranno aggiunti valori nella sezione successiva.

<?xml version="1.0" encoding="utf-8"?>
<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities">
  <Identity Name="" Version="" Publisher="" ProcessorArchitecture="" />
  <Properties>
    <DisplayName></DisplayName>
    <PublisherDisplayName></PublisherDisplayName>
    <Description></Description>
    <Logo></Logo>
  </Properties>
  <Resources>
    <Resource Language="" />
  </Resources>
  <Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="" MaxVersionTested="" />
  </Dependencies>
  <Capabilities>
    <rescap:Capability Name="runFullTrust"/>
  </Capabilities>
  <Applications>
    <Application Id="" Executable=""
      uap10:RuntimeBehavior="packagedClassicApp"
      uap10:TrustLevel="mediumIL">
      <uap:VisualElements DisplayName="" Description=""	Square150x150Logo=""
        Square44x44Logo="" BackgroundColor="" />
    </Application>
  </Applications>
</Package>

Nota

Se il pacchetto viene installato nei sistemi precedenti a Windows 10 versione 2004 (10.0; Build 19041), quindi usare l'attributo EntryPoint anziché uap10:RuntimeBehavior e uap10:TrustLevel. Per altri dettagli ed esempi, vedi uap10 è stato introdotto in Windows 10 versione 2004 (10.0; Build 19041).

Impostare gli elementi del file a livello di pacchetto

Immetti nel modello le informazioni che descrivono il tuo pacchetto.

Informazioni sull'identità

Ecco un esempio dell'elemento Identity con il testo segnaposto per gli attributi. È possibile impostare l'attributo ProcessorArchitecture su x64 , x86 , arm (ad esempio arm a 32 bit), arm64 o neutral

<Identity Name="MyCompany.MySuite.MyApp"
          Version="1.0.0.0"
          Publisher="CN=MyCompany, O=MyCompany, L=MyCity, S=MyState, C=MyCountry"
			    ProcessorArchitecture="x64">

Nota

Se in Microsoft Store hai riservato il nome dell'applicazione, puoi recuperare il nome e l'editore usando il Centro per i partner. Se prevedi di trasferire localmente l'app in altri sistemi, puoi specificare nomi personalizzati per tali sistemi, purché il nome dell'editore scelto corrisponda a quello riportato sul certificato usato per firmare l'app.

Proprietà

L'elemento Properties ha tre elementi figlio obbligatori. Ecco un esempio del nodo Properties con il testo segnaposto per gli elementi. DisplayName è il nome della tua applicazione riservato nello Store, nel caso di app caricate nello Store.

<Properties>
  <DisplayName>MyApp</DisplayName>
  <PublisherDisplayName>MyCompany</PublisherDisplayName>
  <Logo>images\icon.png</Logo>
</Properties>

Risorse

Ecco un esempio del nodo Resources.

<Resources>
  <Resource Language="en-us" />
</Resources>

Dipendenze

Per le app desktop per cui crei un pacchetto, imposta sempre l'attributo Name su Windows.Desktop.

<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14316.0" MaxVersionTested="10.0.15063.0" />
</Dependencies>

Funzionalità

Per un pacchetto che contiene una o più app con attendibilità totale, è necessario dichiarare la runFullTrust funzionalità con restrizioni, come illustrato di seguito. Per informazioni dettagliate e una definizione dell'app full-trust, cercare Full Trust Permission Level (Livello di autorizzazione attendibilità completa) nelle dichiarazioni di funzionalità dell'app).

<Capabilities>
  <rescap:Capability Name="runFullTrust"/>
</Capabilities>

Impostare gli elementi a livello di applicazione

Immetti nel modello le informazioni che descrivono l'app.

Elemento Application

Per le app desktop per cui si crea un pacchetto, configurare l'elemento Application come segue:

<Applications>
  <Application Id="MyApp" Executable="MyApp.exe"
		 uap10:RuntimeBehavior="packagedClassicApp"
     uap10:TrustLevel="mediumIL">
   </Application>
</Applications>

Nota

Se il pacchetto viene installato nei sistemi precedenti a Windows 10 versione 2004 (10.0; Build 19041), quindi usare l'attributo EntryPoint anziché uap10:RuntimeBehavior e uap10:TrustLevel. Per altri dettagli ed esempi, vedi uap10 è stato introdotto in Windows 10 versione 2004 (10.0; Build 19041).

Elementi visivi

Ecco un esempio del nodo VisualElements.

<uap:VisualElements
	BackgroundColor="#464646"
	DisplayName="My App"
	Square150x150Logo="images\icon.png"
	Square44x44Logo="images\small_icon.png"
	Description="A useful description" />

(Facoltativo) Aggiungere asset senza livello di sfondo di dimensioni fisse

Gli asset basati sulla destinazione sono destinati a icone e riquadri visualizzati nella barra delle applicazioni di Windows, nella visualizzazione attività, ALT+TAB, snap-assist e nell'angolo inferiore destro dei riquadri Start. Puoi leggere qui altre informazioni al riguardo.

  1. Ottieni le immagini 44x44 corrette e quindi copiale nella cartella che contiene le tue immagini, ad esempio Asset.

  2. Per ogni immagine 44x44, creare una copia nella stessa cartella e aggiungere .targetsize-44_altform-unplated al nome del file. È necessario avere due copie di ogni icona, ognuna denominata in modo specifico. Ad esempio, al termine del processo, la cartella degli asset potrebbe contenere MYAPP_44x44.png e MYAPP_44x44.targetsize-44_altform-unplated.png.

    Nota

    In questo esempio, l'icona denominata MYAPP_44x44.png è l'icona a cui farai riferimento nell'attributo del logo Square44x44Logo del tuo pacchetto MSIX.

  3. Nel file manifesto imposta BackgroundColor per ogni icona che vuoi rendere trasparente.

  4. Continua con la sottosezione successiva per generare un nuovo file di indice risorse (PRI) del pacchetto.

Generare un file di indice risorse con MakePri

Se crei asset di dimensioni fisse come descritto nella sezione precedente o modifichi uno qualsiasi degli asset visivi della tua applicazione dopo aver creato il pacchetto, dovrai generare un nuovo file PRI.

In base al percorso di installazione dell'SDK, questo è il percorso in cui MakePri.exe si trova nel PC Windows:

  • x86: C:\Programmi (x86)\Windows Kits\10\bin\<build number>\x86\makepri.exe
  • x64: C:\Programmi (x86)\Windows Kits\10\bin\<build number>\x64\makepri.exe

Non esiste alcuna versione arm di questo strumento.

  1. Apri un prompt dei comandi o una finestra di PowerShell.

  2. Passa alla cartella radice del pacchetto e crea un file priconfig.xml eseguendo il comando <path>\makepri.exe createconfig /cf priconfig.xml /dq en-US.

  3. Crea i file resources.pri usando il comando <path>\makepri.exe new /pr <PHYSICAL_PATH_TO_FOLDER> /cf <PHYSICAL_PATH_TO_FOLDER>\priconfig.xml.

    Ad esempio, il comando per l'applicazione potrebbe essere simile a questo: <path>\makepri.exe new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xml.

  4. Crea un pacchetto della tua applicazione in base alle istruzioni nel passaggio seguente.

Testare l'applicazione prima della creazione del pacchetto

È possibile distribuire l'applicazione non in pacchetto e testarla prima di creare pacchetti o firmare. A tale scopo, esegui il cmdlet riportato di seguito da una finestra di PowerShell. Assicurati di passare il file manifesto dell'applicazione che si trova nella radice della directory del pacchetto con tutti gli altri componenti:

Add-AppxPackage –Register AppxManifest.xml

Al termine dell'operazione, l'applicazione dovrebbe essere distribuita nel sistema e puoi testarla per verificare che tutto funzioni prima di creare il pacchetto. Per aggiornare i file con estensione exe o dll della tua applicazione, sostituisci i file esistenti nel pacchetto con quelli nuovi, aumenta il numero di versione in AppxManifest.xml e quindi esegui di nuovo il comando precedente.

Creare un pacchetto MSIX per i componenti

Il passaggio successivo consiste nell'usare MakeAppx.exe per generare un pacchetto MSIX per la tua applicazione. Makeappx.exe è incluso in Windows SDK e, se è installato Visual Studio, è possibile accedervi facilmente tramite il prompt dei comandi per gli sviluppatori per Visual Studio.

Vedi Creare un pacchetto o un bundle MSIX con lo strumento MakeAppx.exe

Nota

Un'applicazione in pacchetto viene sempre eseguita con i privilegi di utente interattivo e qualsiasi unità in cui installi l'applicazione in pacchetto deve avere il formato NTFS.