Delen via


App Packager (MakeAppx.exe)

Notitie

Zie Een app-pakket maken met het MakeAppx.exe hulpprogrammavoor uwP-richtlijnen voor het gebruik van dit hulpprogramma.

 

App Packager (MakeAppx.exe) maakt een app-pakket op basis van bestanden op schijf of extraheert de bestanden van een app-pakket naar schijf. Vanaf Windows 8.1 maakt App Packager ook een app-pakketbundel van app-pakketten op schijf of extraheert de app-pakketten van een app-pakketbundel naar schijf. Het is opgenomen in Microsoft Visual Studio en de Windows Software Development Kit (SDK) voor Windows 8 of Windows Software Development Kit (SDK) voor Windows 8.1 en hoger. Ga naar Downloads voor ontwikkelaars om ze te downloaden.

Het hulpprogramma MakeAppx.exe wordt meestal gevonden op specifieke locaties voor besturingssysteemversies:

  • C:\Program Files (x86)\Windows Kits\10\bin<buildnummer><architectuur>\makeappx.exe

Waar <architectuur> = x86, x64, arm, ar64 of chpe. U kunt het ook vinden in:

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

App Packager gebruiken

Notitie

Relatieve paden worden ondersteund in het hele hulpprogramma.

 

Een pakket maken met behulp van een mapstructuur

Plaats de AppxManifest.xml in de hoofdmap van een map met alle nettoladingbestanden voor uw app. Er wordt een identieke mapstructuur gemaakt voor het app-pakket en is beschikbaar wanneer het pakket wordt geëxtraheerd tijdens de implementatie.

  1. Plaats alle bestanden in één mapstructuur, waardoor submappen naar wens worden gemaakt.

  2. Maak een geldig pakketmanifest, AppxManifest.xmlen plaats het in de hoofdmap.

  3. Voer deze opdracht uit:

    MakeAppx pack /dinput_directorypath/pfilepath.appx

Een pakket maken met behulp van een toewijzingsbestand

  1. Maak een geldig pakketmanifest AppxManifest.xml.

  2. Maak een toewijzingsbestand. De eerste regel bevat de tekenreeks [Bestanden]en de regels die volgen geven de bronpaden (schijf) en doelpaden (pakket) op in tekenreeksen tussen aanhalingstekens.

    [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. Voer deze opdracht uit:

    MakeAppx pack /fmapping_filepath/pfilepath.appx

Het pakket ondertekenen met SignTool

  1. Maak het certificaat. De uitgever die in het manifest wordt vermeld, moet overeenkomen met de onderwerpinformatie van de uitgever van het handtekeningcertificaat. Zie Een certificaat voor app-pakketondertekening makenvoor meer informatie over het maken van een handtekeningcertificaat.

  2. Voer SignTool.exe uit om het pakket te ondertekenen:

    SignTool-teken /a /v /fdhashAlgorithm/fcertFileNamebestandspad.appx

    De hashAlgorithm- moet overeenkomen met het hash-algoritme dat wordt gebruikt om de blockmap te maken wanneer de app is verpakt. Met het makeAppx-pakkethulpprogramma is het standaard hash-algoritme voor appx-blokmap SHA256-. Voer SignTool.exe SHA256- op als het file digest-algoritme (/fd):

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

    Zie Een app-pakket ondertekenen met SignToolvoor meer informatie over het ondertekenen van pakketten.

Bestanden uit een pakket extraheren

  1. Voer deze opdracht uit:

    MakeAppx het bestand /puitpakken.appx /doutput_directory

  2. Het uitgepakte pakket heeft dezelfde structuur als het geïnstalleerde pakket.

Een pakketbundel maken met behulp van een mapstructuur

We gebruiken de opdracht bundel om een app-bundel te maken op <naam van de uitvoerbundel> door alle pakketten toe te voegen uit <inhoudsmap> (inclusief submappen). Als <inhoudsmap> een bundelmanifest bevat, AppxBundleManifest.xml, wordt deze genegeerd.

  1. Plaats alle pakketten in één mapstructuur, waardoor submappen naar wens worden gemaakt.

  2. Voer deze opdracht uit:

    MakeAppx-bundel /dinput_directorypath/pfilepath.appxbundle

Een pakketbundel maken met behulp van een toewijzingsbestand

We gebruiken de opdracht bundel om een app-bundel te maken op <naam van de uitvoerbundel> door alle pakketten toe te voegen uit een lijst met pakketten in <toewijzingsbestand>. Als <toewijzingsbestand> een bundelmanifest bevat, AppxBundleManifest.xml, wordt het genegeerd.

  1. Maak een <toewijzingsbestand>. De eerste regel bevat de tekenreeks [Bestanden]en de volgende regels geven de pakketten op die aan de bundel moeten worden toegevoegd. Elk pakket wordt beschreven door een paar paden tussen aanhalingstekens, gescheiden door spaties of tabbladen. Het paar paden vertegenwoordigt de bron van het pakket (op schijf) en het doel (in bundel). Alle namen van het doelpakket moeten de .appx-extensie hebben.

        [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. Voer deze opdracht uit:

    MakeAppx-bundel /fmapping_filepath/pfilepath.appxbundle-

Pakketten uit een bundel extraheren

  1. Voer deze opdracht uit:

    MakeAppx unbundle /pbundle_name.appxbundle /doutput_directory

  2. De uitgepakte bundel heeft dezelfde structuur als de geïnstalleerde pakketbundel.

Een pakket versleutelen met een sleutelbestand

  1. Maak een sleutelbestand. Sleutelbestanden moeten beginnen met een regel met de tekenreeks [Sleutels], gevolgd door regels die de sleutels beschrijven waarmee het pakket moet worden versleuteld. Elke sleutel wordt beschreven door een paar tekenreeksen tussen aanhalingstekens, gescheiden door spaties of tabbladen. De eerste tekenreeks vertegenwoordigt de sleutel-id en de tweede tekenreeks vertegenwoordigt de versleutelingssleutel in hexadecimale vorm.

        [Keys]
        "0"                 "1AC4CDCFF1924D2885A0607269787BA6BF09B7FFEBF74ED4B9D86E423CF9186B"
    
  2. Voer deze opdracht uit:

    MakeAppx.exe versleutelen /ppackage_name.appx /epencrypted_package_name.eappx /kfkeyfile_name.txt

  3. Het invoerpakket wordt versleuteld in het opgegeven versleutelde pakket met behulp van het opgegeven sleutelbestand.

Een pakket versleutelen met een globale testsleutel

  1. Voer deze opdracht uit:

    MakeAppx.exe versleutelen /ppackage_name.appx /epencrypted_package_name.eappx /kt

  2. Het invoerpakket wordt versleuteld in het opgegeven versleutelde pakket met behulp van de globale testsleutel.

Een pakket ontsleutelen met een sleutelbestand

  1. Maak een sleutelbestand. Sleutelbestanden moeten beginnen met een regel met de tekenreeks [Sleutels], gevolgd door regels die de sleutels beschrijven waarmee het pakket moet worden versleuteld. Elke sleutel wordt beschreven door een paar tekenreeksen tussen aanhalingstekens, gescheiden door spaties of tabbladen. De eerste tekenreeks vertegenwoordigt de met base64 gecodeerde sleutel-id van 32 byte en de tweede tekenreeks vertegenwoordigt de met base64 gecodeerde 32-byte-versleutelingssleutel.

        [Keys]
        "OWVwSzliRGY1VWt1ODk4N1Q4R2Vqc04zMzIzNnlUREU="                 "MjNFTlFhZGRGZEY2YnVxMTBocjd6THdOdk9pZkpvelc="
    
  2. Voer deze opdracht uit:

    MakeAppx.exe ontsleutelen /ppackage_name.appx /epunencrypted_package_name.eappx /kfkeyfile_name.txt

  3. Het invoerpakket wordt ontsleuteld in het opgegeven niet-versleutelde pakket met behulp van het opgegeven sleutelbestand.

Een pakket ontsleutelen met een globale testsleutel

  1. Voer deze opdracht uit:

    MakeAppx.exe ontsleutelen /ppackage_name.appx /epunencrypted_package_name.eappx /kt

  2. Het invoerpakket wordt ontsleuteld in het opgegeven niet-versleutelde pakket met behulp van de globale testsleutel.

Gebruik

Het opdrachtregelargument /p is altijd vereist, met /d, /fof /ep. Houd er rekening mee dat /d, /fen /ep- elkaar uitsluiten.

MakeAppx pack [opties]/p<naam van uitvoerpakket>/d<inhoudsmap>

MakeAppx pack [opties]/p<naam van het uitvoerpakket>/f<toewijzingsbestand>

MakeAppx [opties] uitpakken/p<naam invoerpakket>/d<uitvoermap>

MakeAppx-bundel [opties]/p<uitvoerbundelnaam>/d<inhoudsmap>

MakeAppx-bundel [opties]/p<naam van uitvoerbundel>/f<toewijzingsbestand>

MakeAppx unbundle [options]/p<invoerbundelnaam>/d<uitvoermap>

MakeAppx [opties] versleutelen/p<naam van invoerpakket>/ep<naam van uitvoerpakket>

MakeAppx ontsleutelen [opties]/p<naam invoerpakket>/ep<naam van het uitvoerpakket>

Opdrachtregelsyntaxis

Hier volgt de algemene gebruikssyntaxis van de opdrachtregel voor MakeAppx.

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

MakeAppx packs of uitpakt de bestanden in een pakket, bundelt of ontbundelt de pakketten in een bundel of versleutelt of ontsleutelt of ontsleutelt het app-pakket of bundel in de opgegeven invoermap of toewijzingsbestand. Hier volgt de lijst met parameters die van toepassing zijn op MakeAppx-pack, MakeAppx uitpakken, MakeAppx-bundel, MakeAppx-ontmaskering, MakeAppx versleutelenof MakeAppx-ontsleuteling.

/l-

Deze optie wordt gebruikt voor gelokaliseerde pakketten. De standaardvalidatietrips voor gelokaliseerde pakketten. Met deze optie wordt alleen die specifieke validatie uitgeschakeld, zonder dat alle validatie hoeft te worden uitgeschakeld.

/o-

Overschrijf het uitvoerbestand als het bestaat. Als u deze optie of de optie /no niet opgeeft, wordt de gebruiker gevraagd of hij of zij het bestand wil overschrijven.

U kunt deze optie niet gebruiken met /geen.

/no

Hiermee voorkomt u dat het uitvoerbestand wordt overschreven als het bestaat. Als u deze optie of de optie /o niet opgeeft, wordt de gebruiker gevraagd of hij of zij het bestand wil overschrijven.

U kunt deze optie niet gebruiken met /o-.

/nv-

Semantische validatie overslaan. Als u deze optie niet opgeeft, voert het hulpprogramma een volledige validatie van het pakket uit.

/v-

Schakel uitgebreide uitvoer van logboekregistratie in op de console.

/?

Help-tekst weergeven.

MakeAppx-pakket, MakeAppx uitpakken, MakeAppx-bundel, MakeAppx-ontbundeling, MakeAppxversleutelen en MakeAppx-ontsleuteling zijn wederzijds exclusieve opdrachten. Dit zijn de opdrachtregelparameters die specifiek van toepassing zijn op elke opdracht:

MakeAppx pack [h]

Hiermee maakt u een pakket.

/halgoritme

Hiermee geeft u het hash-algoritme dat moet worden gebruikt bij het maken van de bloktoewijzing. Hier volgen geldige waarden voor algoritme:

SHA256 (standaard)
SHA384
SHA512

U kunt deze optie niet gebruiken met de opdracht uitpakken.

MakeAppx uitpakken [pfn-]

Extraheert alle bestanden in het opgegeven pakket naar de opgegeven uitvoermap. De uitvoer heeft dezelfde mapstructuur als het pakket.

/pfn-

Hiermee geeft u een map met de volledige naam van het pakket. Deze map wordt gemaakt onder de opgegeven uitvoerlocatie. U kunt deze optie niet gebruiken met de opdracht pack.

MakeAppx unbundle [pfn]

Pak alle pakketten uit in een submap onder het opgegeven uitvoerpad, met de volledige naam van de bundel. De uitvoer heeft dezelfde mapstructuur als de geïnstalleerde pakketbundel.

/pfn-

Hiermee geeft u een map met de volledige naam van de pakketbundel. Deze map wordt gemaakt onder de opgegeven uitvoerlocatie. U kunt deze optie niet gebruiken met de opdracht bundel.

MakeAppx versleutelen [kf-, kt]

Hiermee maakt u een versleuteld app-pakket op basis van het opgegeven invoer-app-pakket op het opgegeven uitvoerpakket.

/kf<sleutelbestand>

Versleutelt het pakket of de bundel met behulp van de sleutel uit het opgegeven sleutelbestand. U kunt deze optie niet gebruiken met kt.

/kt-

Versleutelt het pakket of de bundel met behulp van de globale testsleutel. U kunt deze optie niet gebruiken met kf-.

MakeAppx ontsleutelen [kf-, kt]

Hiermee maakt u een niet-versleuteld app-pakket op basis van het opgegeven invoer-app-pakket op het opgegeven uitvoerpakket.

/kf<sleutelbestand>

Ontsleutelt het pakket of de bundel met behulp van de sleutel uit het opgegeven sleutelbestand. U kunt deze optie niet gebruiken met kt.

/kt-

Ontsleutelt het pakket of de bundel met behulp van de globale testsleutel. U kunt deze optie niet gebruiken met kf-.

Semantische validatie uitgevoerd door MakeAppx

MakeAppx voert een beperkte semantische validatie uit die is ontworpen om de meest voorkomende implementatiefouten te ondervangen en ervoor te zorgen dat het app-pakket geldig is.

Deze validatie zorgt ervoor dat:

  • Alle bestanden waarnaar in het pakketmanifest wordt verwezen, worden opgenomen in het app-pakket.
  • Een toepassing heeft geen twee identieke sleutels.
  • Een toepassing registreert zich niet voor een verboden protocol uit deze lijst: SMB, FILE, MS-WWA-WEB, MS-WWA.

Deze semantische validatie is niet voltooid en pakketten die door MakeAppx zijn gebouwd, zijn niet gegarandeerd te installeren.