App-Objekt-Manager (MakeAppx.exe)

Hinweis

Eine UWP-Anleitung zur Verwendung dieses Tools finden Sie unter Erstellen eines App-Pakets mit dem MakeAppx.exe-Tool.

 

App Packager (MakeAppx.exe) erstellt ein App-Paket aus Dateien auf dem Datenträger oder extrahiert die Dateien aus einem App-Paket auf den Datenträger. Ab Windows 8.1 erstellt app packager auch ein App-Paketpaket aus App-Paketen auf dem Datenträger oder extrahiert die App-Pakete aus einem App-Paketpaket auf den Datenträger. Es ist in Microsoft Visual Studio und dem Windows Software Development Kit (SDK) für Windows 8 oder Windows Software Development Kit (SDK) für Windows 8.1 und neuer enthalten. Besuchen Sie Downloads für Entwickler , um sie zu erhalten.

Das MakeAppx.exe-Tool befindet sich in der Regel an bestimmten Speicherorten der Betriebssystemversion:

  • C:\Programme (x86)\Windows Kits\10\bin<Buildnummernarchitektur><>\makeappx.exe

Where <architecture> = x86, x64, arm, ar64 or chpe. Alternativ kann es sich in befinden:

C:\Programme (x86)\Windows Kits\10\App Certification Kit\makeappx.exe

Verwenden des App-Paketiers

Hinweis

Relative Pfade werden im gesamten Tool unterstützt.

 

So erstellen Sie ein Paket mithilfe einer Verzeichnisstruktur

Platzieren Sie die AppxManifest.xml im Stammverzeichnis eines Verzeichnisses, das alle Nutzlastdateien für Ihre App enthält. Für das App-Paket wird eine identische Verzeichnisstruktur erstellt, die verfügbar ist, wenn das Paket zur Bereitstellungszeit extrahiert wird.

  1. Platzieren Sie alle Dateien in einer einzelnen Verzeichnisstruktur, und erstellen Sie Unterverzeichnisse wie gewünscht.

  2. Erstellen Sie ein gültiges Paketmanifest, AppxManifest.xml, und platzieren Sie es im Stammverzeichnis.

  3. Führen Sie den folgenden Befehl aus:

    MakeAppx pack /dinput_directorypath/pfilepath.appx

So erstellen Sie ein Paket mithilfe einer Zuordnungsdatei

  1. Erstellen Sie ein gültiges Paketmanifest, AppxManifest.xml.

  2. Erstellen Sie eine Zuordnungsdatei. Die erste Zeile enthält die Zeichenfolge [Dateien], und die folgenden Zeilen geben die Quell- (Datenträger) und Zielpfade (Paket) in Anführungszeichenzeichenfolgen an.

    [Files]
    "C:\MyApp\StartPage.htm"     "default.html"
    "C:\MyApp\readme.txt"        "doc\readme.txt"
    "\\MyServer\path\icon.png"   "icon.png"
    "MyCustomManifest.xml"       "AppxManifest.xml"
    
  3. Führen Sie den folgenden Befehl aus:

    MakeAppx pack /fmapping_filepath/pfilepath.appx

So signieren Sie das Paket mit SignTool

  1. Erstellen Sie das Zertifikat. Der im Manifest aufgeführte Herausgeber muss mit den Antragstellerinformationen des Herausgebers des Signaturzertifikats übereinstimmen. Weitere Informationen zum Erstellen eines Signaturzertifikats finden Sie unter Erstellen eines Signaturzertifikats für ein App-Paket.

  2. Führen Sie SignTool.exe aus, um das Paket zu signieren:

    SignTool sign /a /v /fdhashAlgorithm/fcertFileNamefilepath.appx

    Der hashAlgorithm muss mit dem Hashalgorithmus übereinstimmen, der zum Erstellen der Blockmap verwendet wurde, als die App gepackt wurde. Mit dem Pakethilfsprogramm MakeAppx ist der Standardmäßige Appx-Blockmap-Hashalgorithmus SHA256. Führen Sie SignTool.exe Angeben von SHA256 als Datei-Digest-Algorithmus (/fd) aus:

    SignTool sign /a /v /fd SHA256 /fcertFileNamefilepath.appx

    Weitere Informationen zum Signieren von Paketen finden Sie unter Signieren eines App-Pakets mit SignTool.

So extrahieren Sie Dateien aus einem Paket

  1. Führen Sie den folgenden Befehl aus:

    MakeAppx entpacken /pfile.appx /doutput_directory

  2. Das entpackte Paket weist dieselbe Struktur wie das installierte Paket auf.

So erstellen Sie ein Paketpaket mithilfe einer Verzeichnisstruktur

Wir verwenden den Befehl bundle , um ein App-Bündel am <Ausgabepaketnamen> zu erstellen, indem alle Pakete aus dem <Inhaltsverzeichnis> (einschließlich Unterordnern) hinzugefügt werden. Wenn <das Inhaltsverzeichnis> ein Bündelmanifest enthält, wird es AppxBundleManifest.xml ignoriert.

  1. Platzieren Sie alle Pakete in einer einzelnen Verzeichnisstruktur, und erstellen Sie Unterverzeichnisse wie gewünscht.

  2. Führen Sie den folgenden Befehl aus:

    MakeAppx-Bundle /dinput_directorypath/pfilepath.appxbundle

So erstellen Sie ein Paketpaket mithilfe einer Zuordnungsdatei

Wir verwenden den Befehl bundle , um ein App-Bundle am <Ausgabepaketnamen> zu erstellen, indem alle Pakete aus einer Liste von Paketen in <der Zuordnungsdatei> hinzugefügt werden. Wenn <die Zuordnungsdatei> ein Bündelmanifest enthält, wird sie AppxBundleManifest.xml ignoriert.

  1. Erstellen Sie eine Zuordnungsdatei<>. Die erste Zeile enthält die Zeichenfolge [Files], und die folgenden Zeilen geben die Pakete an, die dem Bundle hinzugefügt werden sollen. Jedes Paket wird durch zwei Pfade in Anführungszeichen beschrieben, die durch Leerzeichen oder Registerkarten getrennt sind. Das Pfadpaar stellt die Quelle (auf dem Datenträger) und das Ziel (im Bundle) des Pakets dar. Alle Zielpaketnamen müssen die Erweiterung APPX aufweisen.

        [Files]
        "C:\MyApp\MyApp_x86.appx"                 "MyApp_x86.appx"
        "C:\Program Files (x86)\ResPack.appx"    "resources\resPack.appx"
        "\\MyServer\path\ResPack.appx"           "Respack.appx"
        "my app files\respack.appx"              "my app files\respack.appx"
    
  2. Führen Sie den folgenden Befehl aus:

    MakeAppx bundle /fmapping_filepath/pfilepath.appxbundle

So extrahieren Sie Pakete aus einem Paket

  1. Führen Sie den folgenden Befehl aus:

    MakeAppx unbundle /pbundle_name.appxbundle /doutput_directory

  2. Das entpackte Paket weist dieselbe Struktur wie das installierte Paketpaket auf.

So verschlüsseln Sie ein Paket mit einer Schlüsseldatei

  1. Erstellen Sie eine Schlüsseldatei. Schlüsseldateien müssen mit einer Zeile beginnen, die die Zeichenfolge "[Keys]" enthält, gefolgt von Zeilen, die die Schlüssel beschreiben, mit denen das Paket verschlüsselt werden soll. Jeder Schlüssel wird durch ein Paar von Zeichenfolgen in Anführungszeichen beschrieben, die durch Leerzeichen oder Registerkarten getrennt sind. Die erste Zeichenfolge stellt die Schlüssel-ID und die zweite Zeichenfolge den Verschlüsselungsschlüssel in hexadezimaler Form dar.

        [Keys]
        "0"                 "1AC4CDCFF1924D2885A0607269787BA6BF09B7FFEBF74ED4B9D86E423CF9186B"
    
  2. Führen Sie den folgenden Befehl aus:

    MakeAppx.exe verschlüsseln /ppackage_name.appx /epencrypted_package_name.eappx /kfkeyfile_name.txt

  3. Das Eingabepaket wird mithilfe der angegebenen Schlüsseldatei in das angegebene verschlüsselte Paket verschlüsselt.

So verschlüsseln Sie ein Paket mit einem globalen Testschlüssel

  1. Führen Sie den folgenden Befehl aus:

    MakeAppx.exe verschlüsseln /ppackage_name.appx /epencrypted_package_name.eappx /kt

  2. Das Eingabepaket wird mithilfe des globalen Testschlüssels in das angegebene verschlüsselte Paket verschlüsselt.

So entschlüsseln Sie ein Paket mit einer Schlüsseldatei

  1. Erstellen Sie eine Schlüsseldatei. Schlüsseldateien müssen mit einer Zeile beginnen, die die Zeichenfolge "[Keys]" enthält, gefolgt von Zeilen, die die Schlüssel beschreiben, mit denen das Paket verschlüsselt werden soll. Jeder Schlüssel wird durch ein Paar von Zeichenfolgen in Anführungszeichen beschrieben, die durch Leerzeichen oder Registerkarten getrennt sind. Die erste Zeichenfolge stellt die base64-codierte 32-Byte-Schlüssel-ID und die zweite Zeichenfolge den base64-codierten 32-Byte-Verschlüsselungsschlüssel dar.

        [Keys]
        "OWVwSzliRGY1VWt1ODk4N1Q4R2Vqc04zMzIzNnlUREU="                 "MjNFTlFhZGRGZEY2YnVxMTBocjd6THdOdk9pZkpvelc="
    
  2. Führen Sie den folgenden Befehl aus:

    MakeAppx.exe entschlüsseln /ppackage_name.appx /epunencrypted_package_name.eappx /kfkeyfile_name.txt

  3. Das Eingabepaket wird mithilfe der angegebenen Schlüsseldatei in das angegebene unverschlüsselte Paket entschlüsselt.

So entschlüsseln Sie ein Paket mit einem globalen Testschlüssel

  1. Führen Sie den folgenden Befehl aus:

    MakeAppx.exe entschlüsseln /ppackage_name.appx /epunencrypted_package_name.eappx /kt

  2. Das Eingabepaket wird mithilfe des globalen Testschlüssels in das angegebene unverschlüsselte Paket entschlüsselt.

Verwendung

Das Befehlszeilenargument /p ist immer mit /d, /f oder /ep erforderlich. Beachten Sie, dass /d, /f und /ep sich gegenseitig ausschließen.

MakeAppx Pack [Optionen]/p<Ausgabepaketname>/Inhaltsverzeichnis<>

MakeAppx Pack [Optionen]/p<Ausgabepaketname>/f-Zuordnungsdatei<>

MakeAppx entpacken [Optionen]/p-Eingabepaketname<>/Ausgabeverzeichnis<>

MakeAppx bundle [options]/p<output bundle name>/d<content directory>

MakeAppx-Bundle [Optionen]/p<Ausgabepaketname>/f-Zuordnungsdatei<>

MakeAppx unbundle [options]/p<input bundle name>/d<output directory>

MakeAppx encrypt [options]/p<input package name>/ep<output package name>

MakeAppx decrypt [options]/p<input package name>/ep<output package name>

Befehlszeilensyntax

Hier sehen Sie die allgemeine Befehlszeilensyntax für MakeAppx.

MakeAppx [pack|unpack|bundle|unbundle|encrypt|decrypt] [/h/kf/kt/l/o/no/nv/v/pfn/?]

MakeAppx packt oder entpackt die Dateien in einem Paket, bündelt oder entflechtet die Pakete in einem Paket oder verschlüsselt oder entschlüsselt das App-Paket oder das Paket im angegebenen Eingabeverzeichnis oder in der angegebenen Zuordnungsdatei. Dies ist die Liste der Parameter, die für MakeAppx-Paket, MakeAppx-Entpacken, MakeAppx-Bundle, MakeAppx-Entflechtung, MakeAppx-Verschlüsselung oder MakeAppx-Entschlüsselung gelten.

/l

Diese Option wird für lokalisierte Pakete verwendet. Die Standardüberprüfung wird durch lokalisierte Pakete ausgelöst. Diese Option deaktiviert nur die spezifische Überprüfung, ohne dass alle Überprüfungen deaktiviert werden müssen.

/O

Überschreiben Sie die Ausgabedatei, sofern vorhanden. Wenn Sie diese Option oder die Option /no nicht angeben, wird der Benutzer gefragt, ob er die Datei überschreiben möchte.

Sie können diese Option nicht mit /no verwenden.

/Nein

Verhindert ein Überschreiben der Ausgabedatei, wenn vorhanden. Wenn Sie diese Option oder die Option /o nicht angeben, wird der Benutzer gefragt, ob er die Datei überschreiben möchte.

Sie können diese Option nicht mit /o verwenden.

/Nv

Überspringen Der semantischen Validierung. Wenn Sie diese Option nicht angeben, führt das Tool eine vollständige Überprüfung des Pakets aus.

/V

Aktivieren Sie die ausführliche Protokollierungsausgabe für die Konsole.

/?

Hilfetext anzeigen.

MakeAppx pack , MakeAppx unpack , MakeAppx bundle, MakeAppx unbundle, MakeAppx encrypt und MakeAppx decrypt sind gegenseitig ausschließende Befehle. Hier sind die Befehlszeilenparameter aufgeführt, die speziell für jeden Befehl gelten:

MakeAppx-Paket [h]

Erstellt ein Paket.

/h-Algorithmus

Gibt den Hashalgorithmus an, der beim Erstellen der Blockzuordnung verwendet wird. Hier sind gültige Werte für den Algorithmus:

SHA256 (Standard)
SHA384
SHA512

Sie können diese Option nicht mit dem Entpackbefehl verwenden.

MakeAppx auspacken [pfn]

Extrahiert alle Dateien im angegebenen Paket in das angegebene Ausgabeverzeichnis. Die Ausgabe hat dieselbe Verzeichnisstruktur wie das Paket.

/pfn

Gibt ein Verzeichnis namens mit dem vollständigen Namen des Pakets an. Dieses Verzeichnis wird unter dem angegebenen Ausgabespeicherort erstellt. Sie können diese Option nicht mit dem Befehl pack verwenden.

MakeAppx unbundle [pfn]

Entpackt alle Pakete in ein Unterverzeichnis unter dem angegebenen Ausgabepfad, benannt nach dem vollständigen Namen des Bundles. Die Ausgabe hat die gleiche Verzeichnisstruktur wie das installierte Paketpaket.

/pfn

Gibt ein Verzeichnis namens mit dem vollständigen Namen des Paketpakets an. Dieses Verzeichnis wird unter dem angegebenen Ausgabespeicherort erstellt. Sie können diese Option nicht mit dem Befehl bundle verwenden.

MakeAppx encrypt [kf, kt]

Erstellt ein verschlüsseltes App-Paket aus dem angegebenen Eingabe-App-Paket am angegebenen Ausgabepaket.

/kf-Schlüsseldatei<>

Verschlüsselt das Paket oder Bündel mithilfe des Schlüssels aus der angegebenen Schlüsseldatei. Sie können diese Option nicht mit kt verwenden.

/Kt

Verschlüsselt das Paket oder Bündel mithilfe des globalen Testschlüssels. Sie können diese Option nicht mit kf verwenden.

MakeAppx decrypt [kf, kt]

Erstellt ein unverschlüsseltes App-Paket aus dem angegebenen Eingabe-App-Paket am angegebenen Ausgabepaket.

/kf-Schlüsseldatei<>

Entschlüsselt das Paket oder Bündel mithilfe des Schlüssels aus der angegebenen Schlüsseldatei. Sie können diese Option nicht mit kt verwenden.

/Kt

Entschlüsselt das Paket oder Bündel mithilfe des globalen Testschlüssels. Sie können diese Option nicht mit kf verwenden.

Von MakeAppx durchgeführte semantische Überprüfung

MakeAppx führt eine eingeschränkte semantische Überprüfung durch, die entwickelt wurde, um die häufigsten Bereitstellungsfehler abzufangen und sicherzustellen, dass das App-Paket gültig ist.

Diese Überprüfung stellt Folgendes sicher:

  • Alle Dateien, auf die im Paketmanifest verwiesen wird, sind im App-Paket enthalten.
  • Die Anwendung besitzt nicht zwei identische Schlüssel.
  • Eine Anwendung registriert sich nicht für ein verbotenes Protokoll aus dieser Liste: SMB , FILE, MS-WWA-WEB, MS-WWA.

Diese semantische Überprüfung ist nicht abgeschlossen, und von MakeAppx erstellte Pakete sind nicht garantiert installierbar.