Generieren von MSIX-Paketkomponenten

In diesem Artikel erfahren Sie, wie Sie MSIX-Paketkomponenten für die Verpackung Ihrer Anwendung mithilfe von Befehlszeilentools generieren können (ohne Verwendung von Visual Studio oder des MSIX-Verpackungstools).

Um Ihre Anwendung manuell zu verpacken, müssen Sie eine Paketmanifestdatei erstellen, Ihre Paketkomponenten hinzufügen und dann das Befehlszeilentool MakeAppx.exe ausführen, um ein MSIX-Paket zu generieren.

Vorbereiten des Verpackens

Falls Sie es noch nicht getan haben, lesen Sie diesen Abschnitt dazu, was Sie vor dem Verpacken Ihrer Anwendung wissen müssen.

Erstellen eines Paketmanifests

Erstellen Sie eine Datei, nennen Sie sie appxmanifest.xml, und fügen Sie diese XML-Datei hinzu.

Es ist eine einfache Vorlage, die die vom Paket benötigten Elemente und Attribute enthält. Wir werden im nächsten Abschnitt die Werte hinzufügen.

<?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>

Hinweis

Wenn das Paket auf Systemen installiert wird, die älter sind als Windows 10, Version 2004 (10.0; Build 19041), müssen Sie das Attribut EntryPoint anstelle von uap10:RuntimeBehavior und uap10:TrustLevel verwenden. Weitere Details und Beispiele finden Sie unter uap10 wurde in Windows 10, Version 2004 (10.0; Build 19041) eingeführt.

Füllen Sie die Paketelemente in der Datei aus.

Geben Sie in diese Vorlage Informationen ein, die das Paket beschreiben.

Identitätsinformationen

Hier ist ein Beispiel für ein Identitäts-Element mit Platzhaltertext für die Attribute. Sie können das Attribut ProcessorArchitecture auf x64, x86, arm (d. h. 32-Bit-ARM), arm64 oder neutral festlegen.

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

Hinweis

Wenn Sie Ihren Anwendungsnamen im Microsoft Store reserviert haben, können Sie den Namen und den Herausgeber über das Partner Center abrufen. Wenn Sie Ihre Anwendung auf andere Systeme querladen möchten, können Sie für diese Ihre eigenen Namen bereitstellen, sofern der von Ihnen gewählte Name des Herausgebers mit dem Namen des Zertifikats übereinstimmt, das Sie zum Signieren Ihrer App verwenden.

Eigenschaften

Das Eigenschaften-Element hat drei erforderliche untergeordnete Elemente. Hier ist ein Beispiel für einen Eigenschaften-Knoten mit Platzhaltertext für die Elemente. Der Anzeigename ist der Name Ihrer Anwendung, den Sie im Store reservieren, für Apps, die in den Store hochgeladen werden.

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

Ressourcen

Hier ist ein Beispiel für einen Ressourcen-Knoten.

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

Abhängigkeiten

Für Desktopanwendungen, für die Sie ein Paket erstellen, legen Sie das Attribut Name immer auf Windows.Desktop fest.

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

Funktionen

Für ein Paket, das mindestens eine voll vertrauenswürdige App enthält, müssen Sie die eingeschränkte Funktion runFullTrust wie unten dargestellt deklarieren. Um vollständige Details und eine Definition für eine voll vertrauenswürdige App zu erhalten, suchen Sie in Deklarationen von App-Funktionen nach Berechtigungsstufe der vollen Vertrauenswürdigkeit.

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

Ausfüllen der Elemente auf Anwendungsebene

Geben Sie in diese Vorlage Informationen ein, die Ihre App beschreiben.

Application-Element

Konfigurieren Sie bei Desktop-Apps, für die Sie ein Paket erstellen, das Element Anwendung wie folgt:

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

Hinweis

Wenn das Paket auf Systemen installiert wird, die älter sind als Windows 10, Version 2004 (10.0; Build 19041), müssen Sie das Attribut EntryPoint anstelle von uap10:RuntimeBehavior und uap10:TrustLevel verwenden. Weitere Details und Beispiele finden Sie unter uap10 wurde in Windows 10, Version 2004 (10.0; Build 19041) eingeführt.

Visuelle Elemente

Hier ist ein Beispiel für einen VisualElements-Knoten.

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

(Optional) Zielbasierte Ressourcen ohne Anpassung hinzufügen

Zielbasierte Ressourcen sind für Symbole und Kacheln gedacht, die auf der Windows-Taskleiste, in „Aktive Anwendungen“, mit ALT+TAB, in der Andockhilfe und in der unteren rechten Ecke der Startkacheln angezeigt werden. Erhalten Sie hier weitere Informationen.

  1. Rufen Sie die richtigen 44x44-Bilder ab, und kopieren Sie sie dann in den Ordner, der Ihre Bilder (d. h. Ressourcen) enthält.

  2. Erstellen Sie für jedes 44x44-Bild eine Kopie im selben Ordner, und fügen Sie .targetsize-44_altform-unplated an den Dateinamen an. Sie sollten über zwei Kopien jedes Symbols verfügen, die jeweils einen eigenen Namen aufweisen. Nach Abschluss des Prozesses könnte Ihr Ressourcen-Ordner beispielsweise MYAPP_44x44.png und MYAPP_44x44.targetsize-44_altform-unplated.png enthalten.

    Hinweis

    In diesem Beispiel ist das Symbol mit dem Namen MYAPP_44x44.png das Symbol, auf das Sie im Square44x44Logo-Logo-Attribut des MSIX-Pakets verweisen.

  3. Legen Sie in der Manifestdatei die BackgroundColor für jedes Symbol fest, das Sie transparent machen.

  4. Fahren Sie mit dem nächste Unterabschnitt fort, um eine neue Paketressourcendateien zu generieren.

Generieren einer Paketressourcendatei (Package Resource Index, PRI) mit MakePri

Wenn Sie zielbasierte Ressourcen erstellen, wie im vorherigen Abschnitt beschrieben, oder Sie die visuellen Ressourcen Ihrer Anwendung nach der Erstellung des Pakets ändern, müssen Sie eine neue PRI-Datei generieren.

Abhängig vom Installationspfad des SDK befindet sich MakePri.exe an folgenden Speicherorten auf Ihrem Windows-PC:

  • x86: C:\Programme (x86)\Windows Kits\10\bin\<buildnummer>\x86\makepri.exe
  • x64: C:\Programme (x86)\Windows Kits\10\bin\<buildnummer>\x64\makepri.exe

Es gibt keine ARM-Version dieses Tools.

  1. Öffnen Sie eine Eingabeaufforderung oder ein PowerShell-Fenster.

  2. Ändern Sie das Verzeichnis in den Stammordner des Pakets, und erstellen Sie dann mit dem Befehl <path>\makepri.exe createconfig /cf priconfig.xml /dq en-US eine priconfig.xml-Datei.

  3. Erstellen Sie die resources.pri-Dateien mit dem Befehl <path>\makepri.exe new /pr <PHYSICAL_PATH_TO_FOLDER> /cf <PHYSICAL_PATH_TO_FOLDER>\priconfig.xml.

    Der Befehl für Ihre Anwendung könnte z. B. wie folgt aussehen: <path>\makepri.exe new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xml.

  4. Verpacken Sie Ihre Anwendung mithilfe der Anweisungen im nächsten Schritt.

Testen der Anwendung vor dem Verpacken

Sie können die nicht verpackte Anwendung bereitstellen und sie vor dem Verpacken oder Signieren testen. Führen Sie dazu das folgende Cmdlet in einem PowerShell-Fenster aus. Stellen Sie sicher, dass Sie die Manifestdatei Ihrer Anwendung, die sich im Stammverzeichnis Ihres Paketverzeichnisses befindet, zusammen mit allen anderen Paketkomponenten übergeben:

Add-AppxPackage –Register AppxManifest.xml

Sobald dies erledigt ist. Ihre Anwendung sollte auf dem System bereitgestellt werden, und Sie können sie vor dem Verpacken testen, um sicherzustellen, dass alles funktioniert. Ersetzen Sie zum Aktualisieren der EXE- oder DLL-Dateien Ihrer App die vorhandenen Dateien in Ihrem Paket durch die neuen, vergrößern Sie die Versionsnummer in der Datei „AppxManifest.xml“, und führen Sie den oben genannten Befehl erneut aus.

Verpacken der Komponenten in eine MSIX

Der nächste Schritt ist die Verwendung von MakeAppx.exe, um ein MSIX-Paket für Ihre Anwendung zu generieren. „Makeappx.exe“ ist im Windows SDK enthalten, und wenn Sie Visual Studio installiert haben, können Sie ganz einfach über die Developer-Eingabeaufforderung für Visual Studio darauf zugreifen.

Weitere Informationen finden Sie unter Erstellen eines MSIX-Pakets oder -Bündels mit dem Tool „MakeAppx.exe“

Hinweis

Eine verpackte Anwendung wird immer als ein interaktiver Benutzer ausgeführt, und jedes Laufwerk, auf das du die verpackte Anwendung installierst, muss auf das NTFS-Format formatiert sein.