App-Objekt-Manager (MakeAppx.exe)

Hinweis

Anleitungen zur Verwendung dieses Tools finden Sie unter Erstellen eines App-Pakets mit dem tool MakeAppx.exe.

 

App-Packager (MakeAppx.exe) erstellt ein App-Paket von 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 von 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 tool MakeAppx.exe befindet sich in der Regel an bestimmten Speicherorten des Betriebssystems:

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

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

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

Verwenden des App-Paketgebers

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. Eine identische Verzeichnisstruktur wird für das App-Paket erstellt und ist verfügbar, wenn das Paket zur Bereitstellungszeit extrahiert wird.

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

  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 Zeilen, die die Quellpfade (Datenträger) und Zielpfade (Paket) in anführungszeichen folgenden Zeichenfolgen angeben.

    [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 mithilfe von SignTool

  1. Erstellen Sie das Zertifikat. Der im Manifest aufgeführte Herausgeber muss den Herausgeber-Betreffinformationen des Signaturzertifikats entsprechen. Weitere Informationen zum Erstellen eines Signaturzertifikats finden Sie unter Erstellen eines App-Paketsignaturzertifikats.

  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 wird, wenn die App verpackt wurde. Mit dem MakeAppx-Paketprogramm ist der Standardmäßige Appx-Blockmap-Hashalgorithmus SHA256. Führen Sie SignTool.exe angeben von SHA256 als Dateidigestalgorithmus (/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 hat dieselbe Struktur wie das installierte Paket.

So erstellen Sie ein Paketpaket mithilfe einer Verzeichnisstruktur

Wir verwenden den Bündelbefehl , um ein App-Bündel im <Ausgabebündelnamen> zu erstellen, indem alle Pakete aus dem <Inhaltsverzeichnis> (einschließlich Unterordnern) hinzugefügt werden. Wenn <das Inhaltsverzeichnis> ein Bundlemanifest enthält, wird AppxBundleManifest.xml ignoriert.

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

  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 Bündelbefehl , um ein App-Bündel im <Ausgabebündelnamen> zu erstellen, indem alle Pakete aus einer Liste der Pakete innerhalb <der Zuordnungsdatei> hinzugefügt werden. Wenn <die Zuordnungsdatei> ein Bundlemanifest enthält, wird AppxBundleManifest.xml ignoriert.

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

        [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 Bundle

  1. Führen Sie den folgenden Befehl aus:

    MakeAppx unbundle /pbundle_name.appxbundle /doutput_directory

  2. Das entpackte Bundle hat dieselbe Struktur wie das installierte Paketbündel.

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, getrennt durch Leerzeichen oder Registerkarten. Die erste Zeichenfolge stellt die Schlüssel-ID dar und die zweite Zeichenfolge stellt den Verschlüsselungsschlüssel in Hexadezimalform 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 bereitgestellten 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, getrennt durch Leerzeichen oder Registerkarten. Die erste Zeichenfolge stellt die base64-codierte 32-Byte-Schlüssel-ID dar und die zweite Zeichenfolge stellt 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 bereitgestellten 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 nicht verschlüsselte Paket entschlüsselt.

Nutzung

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

MakeAppx pack [options]/poutput< package name>/dcontent<directory>

MakeAppx pack [options]/poutput< package name>/fmapping< file>

MakeAppx entpackt [options]/pinput< package name>/doutput< directory>

MakeAppx-Bundle [Optionen]/Poutput-Bundlename<>/dcontent-Verzeichnis<>

MakeAppx-Bundle [options]/poutput< bundle name>/fmapping< file>

MakeAppx unbundle [options]/pinput< bundle name>/doutput< directory>

MakeAppx verschlüsseln [options]/pinput< package name/epoutput package name><>

MakeAppx entschlüsselt [options]/pinput< package name/epoutput package name><>

Befehlszeilensyntax

Nachfolgend finden Sie die allgemeine Verwendungssyntax für MakeAppx.

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

MakeAppx packs or unpacks the files in a package, bundles or unbundles the packages in a bundle, or encrypts or entschlüsselt the app package or bundle in the specified input directory or mapping file. Nachfolgend finden Sie die Liste der Parameter, die für MakeAppx-Pack gelten, MakeAppx-Entpackung, MakeAppx-Bundle, MakeAppx-Entbundle, MakeAppx-Verschlüsselung oder MakeAppx-Entschlüsselung.

/l

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

/o

Überschreiben Sie die Ausgabedatei, wenn sie vorhanden ist. Wenn Sie diese Option oder keine Option angeben, wird der Benutzer gefragt, ob sie die Datei überschreiben möchten.

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

/nein

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

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

/nv

Überspringen Sie die semantische Überprüfung. 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 in der Konsole.

/?

Zeigen Sie Hilfetext an.

MakeAppx Pack , MakeAppx-Entpackung, MakeAppx-Bundle, MakeAppx-Entbundle, MakeAppx-Verschlüsselung undMakeAppx-Entschlüsselung sind gegenseitig exklusive Befehle. Nachfolgend finden Sie die Befehlszeilenparameter, die speziell für jeden Befehl gelten:

MakeAppx pack [h]

Erstellt ein Paket.

/halgorithm

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 Befehl " Entpacken " verwenden.

MakeAppx entpackt [pfn]

Extrahiert alle Dateien im angegebenen Paket in das angegebene Ausgabeverzeichnis. Die Ausgabe verfügt über die gleiche Verzeichnisstruktur wie das Paket.

/pfn

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

MakeAppx unbundle [pfn]

Entpackt alle Pakete in ein Unterverzeichnis unter dem angegebenen Ausgabepfad, benannt nach dem vollständigen Namen des Bundles. Die Ausgabe verfügt über die gleiche Verzeichnisstruktur wie das installierte Paketbündel.

/pfn

Gibt ein Verzeichnis mit dem vollständigen Namen des Paketbündels an. Dieses Verzeichnis wird unter dem angegebenen Ausgabespeicherort erstellt. Sie können diese Option nicht mit dem Bundlebefehl verwenden.

MakeAppx verschlüsseln [kf, kt]

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

/kfkey-Datei<>

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-Entschlüsselung [kf, kt]

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

/kfkey-Datei<>

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.

Semantische Überprüfung durch MakeAppx

MakeAppx führt eine eingeschränkte semantische Überprüfung aus, die für die Fangen der häufigsten Bereitstellungsfehler konzipiert ist 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 Pakete, die von MakeAppx erstellt wurden, sind nicht sicher, dass sie installiert werden können.