Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
MakeAppx.exe maakt zowel app-pakketten (.msix of .appx) als app-pakketbundels (.msixbundle of .appxbundle). MakeAppx.exe extraheert ook bestanden uit een app-pakket of bundel en versleutelt of ontsleutelt app-pakketten en -bundels. Dit hulpprogramma is opgenomen in de Windows 10 SDK en kan worden gebruikt vanaf een opdrachtprompt of een scriptbestand.
Zie Een bureaublad-app handmatig verpakken voor informatie over het gebruik van MakeApp.exe om een bureaublad-app te verpakken.
Belangrijk
Als u Visual Studio hebt gebruikt om uw app te ontwikkelen, is het raadzaam om de Visual Studio-wizard te gebruiken om uw app-pakket te maken. Zie Een UWP-app verpakken met Visual Studio en Een bureaublad-app verpakken vanuit broncode met behulp van Visual Studio voor meer informatie.
Belangrijk
Houd er rekening mee dat MakeAppx.exe geen uploadbestand voor app-pakketten (.appxupload of .msixupload) maakt. Dit is het aanbevolen type geldig app-pakket voor verzendingen naar partnercentrum. Het uploadbestand voor het app-pakket wordt doorgaans gemaakt als onderdeel van het Visual Studio-pakketpakket, hoewel het ook handmatig kan worden gemaakt.
MakeAppx.exe gebruiken
Op basis van uw installatiepad van de SDK bevindt MakeAppx.exe zich op uw Windows 10-pc:
- C:\Program Files (x86)\Windows Kits\10\bin\<build number>\<architecture>\makeappx.exe
waarbij <architectuur> = x86, x64, arm, arm64 of chpe. U kunt het ook vinden in:
- C:\Program Files (x86)\Windows Kits\10\App Certification Kit\makeappx.exe
MakeAppx.exe syntaxis en opties
Algemene MakeAppx.exe syntaxis:
MakeAppx <command> [options]
In de volgende tabel worden de opdrachten voor MakeAppx.exebeschreven.
| Opdracht | Beschrijving |
|---|---|
| inpakken | Hiermee maakt u een pakket. |
| uitpakken | Extraheert alle bestanden in het opgegeven pakket naar de opgegeven uitvoermap. |
| bundel | Hiermee maakt u een bundel. |
| ontbundelen | Pakt alle pakketten uit naar een submap onder het opgegeven uitvoerpad, waarbij de submap de volledige naam van de bundel of het pakket draagt. |
| versleutelen | Hiermee maakt u een versleuteld app-pakket of bundel van het invoerpakket of de invoerbundel naar het opgegeven uitvoerpakket of de uitvoerbundel. |
| ontsleutelen | Hiermee maakt u een ontsleuteld app-pakket of -bundel van het invoer-app-pakket of -bundel naar het opgegeven uitvoerpakket of -bundel. |
Deze lijst met opties is van toepassing op alle opdrachten:
| Optie | Beschrijving |
|---|---|
| /d | Hiermee specificeert u de invoermap, uitvoermap of inhoudsmap. |
| /l | Wordt gebruikt voor gelokaliseerde pakketten. De standaardvalidatietrips voor gelokaliseerde pakketten. Met deze opties wordt alleen die specifieke validatie uitgeschakeld, zonder dat alle validatie hoeft te worden uitgeschakeld. |
| /kf | Hiermee versleutelt of ontsleutelt u het pakket of de bundel met behulp van de sleutel uit het opgegeven sleutelbestand. Dit kan niet worden gebruikt met /kt. |
| /Kt | Hiermee wordt het pakket of de bundel versleuteld of ontsleuteld met behulp van de globale testsleutel. Dit kan niet worden gebruikt met /kf. |
| /Nee | 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. |
| /Nv | Slaat semantische validatie over. Als u deze optie niet opgeeft, voert het hulpprogramma een volledige validatie van het pakket uit. |
| /MT | Overschrijft het uitvoerbestand als het bestaat. Als u deze optie of de /no-optie niet opgeeft, wordt de gebruiker gevraagd of hij of zij het bestand wil overschrijven. |
| /p | Hiermee geeft u het app-pakket of de bundel op. |
| /v | Hiermee schakelt u gedetailleerde logboekgegevens naar de console in. |
| /? | Hiermee wordt Help-tekst weergegeven. |
De volgende lijst bevat mogelijke argumenten:
| Argument | Beschrijving |
|---|---|
| <naam van uitvoerpakket> | De naam van het gemaakte pakket. Dit is de bestandsnaam die is toegevoegd aan .msix of .appx. |
| <naam van versleuteld uitvoerpakket> | De naam van het versleutelde pakket dat is gemaakt. Dit is de bestandsnaam die is toegevoegd aan .emsix of .eappx. |
| <naam van invoerpakket> | De naam van het pakket. Dit is de bestandsnaam die is toegevoegd aan .msix of .appx. |
| <naam van versleuteld invoerpakket> | De naam van het versleutelde pakket. Dit is de bestandsnaam die is toegevoegd aan .emsix of .eappx. |
| <naam van uitvoerbundel> | De naam van de bundel die is gemaakt. Dit is de bestandsnaam die is toegevoegd aan .msixbundle of .appxbundle. |
| <naam van versleutelde uitvoerbundel> | De naam van de versleutelde bundel die is gemaakt. Dit is de bestandsnaam die is toegevoegd aan .emsixbundle of .eappxbundle. |
| <invoerbundelnaam> | De naam van de bundel. Dit is de bestandsnaam die is toegevoegd aan .msixbundle of .appxbundle. |
| <naam van versleutelde invoerbundel> | De naam van de versleutelde bundel. Dit is de bestandsnaam die is toegevoegd aan .emsixbundle of .eappxbundle. |
| <inhoudsdirectory> | Pad voor de inhoud van het app-pakket of de bundel. |
| <koppelbestand> | Bestandsnaam waarmee de pakketbron en het doel worden opgegeven. |
| <uitvoermap> | Pad naar de map voor uitvoerpakketten en bundels. |
| <sleutelbestand> | Naam van het bestand met een sleutel voor versleuteling of ontsleuteling. |
| <algoritme-id> | Algoritmen die worden gebruikt bij het maken van een blokkaart. Geldige algoritmen zijn: SHA256 (standaard), SHA384, SHA512. |
Een app-pakket maken
Een app-pakket is een volledige set bestanden van de app die zijn verpakt in een MSIX- of .appx-pakketbestand. Als u een app-pakket wilt maken met behulp van de opdracht Pack , moet u een inhoudsmap of een toewijzingsbestand opgeven voor de locatie van het pakket. U kunt een pakket ook versleutelen tijdens het maken ervan. Als u het pakket wilt versleutelen, moet u /ep gebruiken en opgeven of u een sleutelbestand (/kf) of de globale testsleutel (/kt) gebruikt. Zie Een pakket of bundel versleutelen of ontsleutelen voor meer informatie over het maken van een versleuteld pakket.
Opties die specifiek zijn voor de opdracht Pack :
| Optie | Beschrijving |
|---|---|
| /f | "Specificeert het toewijzingsbestand." |
| /h | Hiermee geeft u het hash-algoritme dat moet worden gebruikt bij het maken van de bloktoewijzing. Dit kan alleen worden gebruikt met het commando 'pack'. Geldige algoritmen zijn: SHA256 (standaard), SHA384, SHA512. |
| /m | Hiermee geeft u het pad naar een invoer-app-manifest dat wordt gebruikt als basis voor het genereren van het uitvoerende app-pakket of het manifest van het resourcepakket. Wanneer u deze optie gebruikt, moet u ook /f gebruiken en een sectie [ResourceMetadata] opnemen in het toewijzingsbestand om de resourcedimensies op te geven die moeten worden opgenomen in het gegenereerde manifest. |
| /Nc | Voorkomt compressie van de pakketbestanden. Bestanden worden standaard gecomprimeerd op basis van het gedetecteerde bestandstype. |
| /r | Hiermee wordt een resourcepakket gebouwd. Dit moet worden gebruikt met /m en impliceert het gebruik van de optie /l. |
In de volgende gebruiksvoorbeelden ziet u enkele mogelijke syntaxisopties voor de opdracht Pack :
MakeAppx pack [options] /d <content directory> /p <output package name>
MakeAppx pack [options] /f <mapping file> /p <output package name>
MakeAppx pack [options] /m <app package manifest> /f <mapping file> /p <output package name>
MakeAppx pack [options] /r /m <app package manifest> /f <mapping file> /p <output package name>
MakeAppx pack [options] /d <content directory> /ep <encrypted output package name> /kf <key file>
MakeAppx pack [options] /d <content directory> /ep <encrypted output package name> /kt
Hieronder ziet u voorbeelden van opdrachtregels voor de opdracht Pack :
MakeAppx pack /v /h SHA256 /d "C:\My Files" /p MyPackage.msix
MakeAppx pack /v /o /f MyMapping.txt /p MyPackage.msix
MakeAppx pack /m "MyApp\AppxManifest.xml" /f MyMapping.txt /p AppPackage.msix
MakeAppx pack /r /m "MyApp\AppxManifest.xml" /f MyMapping.txt /p ResourcePackage.msix
MakeAppx pack /v /h SHA256 /d "C:\My Files" /ep MyPackage.emsix /kf MyKeyFile.txt
MakeAppx pack /v /h SHA256 /d "C:\My Files" /ep MyPackage.emsix /kt
Een app-bundel maken
Een app-bundel is vergelijkbaar met een app-pakket, maar een bundel kan de grootte van de app verminderen die gebruikers downloaden. App-bundels zijn handig voor taalspecifieke assets, verschillende assets op afbeeldingsschaal of resources die bijvoorbeeld van toepassing zijn op specifieke versies van Microsoft DirectX. Net als bij het maken van een versleuteld app-pakket kunt u de app-bundel ook versleutelen terwijl u het bundelt. Als u de app-bundel wilt versleutelen, gebruikt u de optie /ep en geeft u op of u een sleutelbestand (/kf) of de globale testsleutel (/kt) gebruikt. Zie Een pakket of bundel versleutelen of ontsleutelen voor meer informatie over het maken van een versleutelde bundel.
Opties die specifiek zijn voor de bundelopdracht :
| Optie | Beschrijving |
|---|---|
| /Bv | Hiermee geeft u het versienummer van de bundel. Het versienummer moet in vier delen zijn gescheiden door punten in de vorm: <Hoofdvak>.<Kleine>.<Bouwen>.<Revisie>. |
| /f | "Specificeert het toewijzingsbestand." |
Als de bundelversie niet is opgegeven of als deze is ingesteld op '0.0.0.0', wordt de bundel gemaakt met behulp van de huidige datum/tijd.
In de volgende gebruiksvoorbeelden ziet u enkele mogelijke syntaxisopties voor de bundelopdracht :
MakeAppx bundle [options] /d <content directory> /p <output bundle name>
MakeAppx bundle [options] /f <mapping file> /p <output bundle name>
MakeAppx bundle [options] /d <content directory> /ep <encrypted output bundle name> /kf MyKeyFile.txt
MakeAppx bundle [options] /f <mapping file> /ep <encrypted output bundle name> /kt
Het volgende blok bevat voorbeelden voor de bundelopdracht :
MakeAppx bundle /v /d "C:\My Files" /p MyBundle.msixbundle
MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /p MyBundle.msixbundle
MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /ep MyBundle.emsixbundle /kf MyKeyFile.txt
MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /ep MyBundle.emsixbundle /kt
Bestanden extraheren uit een pakket of bundel
Naast het verpakken en bundelen van apps kan MakeAppx.exe ook bestaande pakketten uitpakken of ontbundelen. U moet de inhoudsmap opgeven als bestemming voor de geëxtraheerde bestanden. Als u bestanden probeert te extraheren uit een versleuteld pakket of bundel, kunt u de bestanden tegelijkertijd ontsleutelen en extraheren met behulp van de optie /ep en opgeven of deze moet worden ontsleuteld met behulp van een sleutelbestand (/kf) of de globale testsleutel (/kt). Zie Een pakket of bundel versleutelen of ontsleutelen voor meer informatie over het ontsleutelen van een pakket of bundel.
Opties die specifiek zijn voor de uitpak en ontbundel commando's:
| Optie | Beschrijving |
|---|---|
| /Nd | De ontsleuteling wordt niet uitgevoerd bij het uitpakken of ontmaskeren van het pakket/bundel. |
| /pfn | Alle bestanden uitpakken/ontkoppelen naar een submap onder het opgegeven uitvoerpad, genaamd na de volledige naam van de bundel of het pakket |
In de volgende gebruiksvoorbeelden ziet u enkele mogelijke syntaxisopties voor de opdrachten uitpakken en uitpakken :
MakeAppx unpack [options] /p <input package name> /d <output directory>
MakeAppx unpack [options] /ep <encrypted input package name> /d <output directory> /kf <key file>
MakeAppx unpack [options] /ep <encrypted input package name> /d <output directory> /kt
MakeAppx unbundle [options] /p <input bundle name> /d <output directory>
MakeAppx unbundle [options] /ep <encrypted input bundle name> /d <output directory> /kf <key file>
MakeAppx unbundle [options] /ep <encrypted input bundle name> /d <output directory> /kt
Het volgende blok bevat voorbeelden voor het gebruik van de opdrachten uitpakken en uitpakken :
MakeAppx unpack /v /p MyPackage.msix /d "C:\My Files"
MakeAppx unpack /v /ep MyPackage.emsix /d "C:\My Files" /kf MyKeyFile.txt
MakeAppx unpack /v /ep MyPackage.emsix /d "C:\My Files" /kt
MakeAppx unbundle /v /p MyBundle.msixbundle /d "C:\My Files"
MakeAppx unbundle /v /ep MyBundle.emsixbundle /d "C:\My Files" /kf MyKeyFile.txt
MakeAppx unbundle /v /ep MyBundle.emsixbundle /d "C:\My Files" /kt
Een pakket of bundel versleutelen of ontsleutelen
Het hulpprogrammaMakeAppx.exe kan ook een bestaand pakket of bundel versleutelen of ontsleutelen. U moet gewoon de pakketnaam, de naam van het uitvoerpakket opgeven en of versleuteling of ontsleuteling een sleutelbestand (/kf) of de globale testsleutel (/kt) moet gebruiken.
Versleuteling en ontsleuteling zijn niet beschikbaar via de Visual Studio-packaging-wizard.
Opties die specifiek zijn voor het versleutelen en ontsleutelen van opdrachten:
| Optie | Beschrijving |
|---|---|
| /Ep | Hiermee geeft u een versleuteld app-pakket of -bundel op. |
In de volgende gebruiksvoorbeelden ziet u enkele mogelijke syntaxisopties voor de opdrachten voor versleutelen en ontsleutelen :
MakeAppx encrypt [options] /p <package name> /ep <output package name> /kf <key file>
MakeAppx encrypt [options] /p <package name> /ep <output package name> /kt
MakeAppx decrypt [options] /ep <package name> /p <output package name> /kf <key file>
MakeAppx decrypt [options] /ep <package name> /p <output package name> /kt
Het volgende blok bevat voorbeelden voor het gebruik van de opdrachten voor versleutelen en ontsleutelen :
MakeAppx.exe encrypt /p MyPackage.msix /ep MyEncryptedPackage.emsix /kt
MakeAppx.exe encrypt /p MyPackage.msix /ep MyEncryptedPackage.emsix /kf MyKeyFile.txt
MakeAppx.exe decrypt /p MyPackage.msix /ep MyEncryptedPackage.emsix /kt
MakeAppx.exe decrypt p MyPackage.msix /ep MyEncryptedPackage.emsix /kf MyKeyFile.txt
Sleutelbestanden
Sleutelbestanden moeten beginnen met een regel met de tekenreeks [Sleutels], gevolgd door regels die de sleutels beschrijven waarmee elk pakket moet worden versleuteld. Elke sleutel wordt vertegenwoordigd door een paar tekenreeksen tussen aanhalingstekens, gescheiden door spaties of tabs. De eerste tekenreeks vertegenwoordigt de met base64 gecodeerde sleutel-id van 32 bytes en de tweede tekenreeks vertegenwoordigt de met base64 gecodeerde versleutelingssleutel van 32 bytes. Een sleutelbestand moet een eenvoudig tekstbestand zijn.
Voorbeeld van een sleutelbestand:
[Keys]
"OWVwSzliRGY1VWt1ODk4N1Q4R2Vqc04zMzIzNnlUREU=" "MjNFTlFhZGRGZEY2YnVxMTBocjd6THdOdk9pZkpvelc="
Koppelbestanden
Koppelingsbestanden moeten beginnen met een regel die de tekenreeks "[Bestanden]" bevat, gevolgd door regels die de bestanden beschrijven die aan het pakket moeten worden toegevoegd. Elk bestand wordt beschreven door een paar paden tussen aanhalingstekens, gescheiden door spaties of tabbladen. Elk bestand vertegenwoordigt de bron (op schijf) en het doel (in het pakket). Een toewijzingsbestand moet een eenvoudig tekstbestand zijn.
Voorbeeld van een koppelbestand (zonder de /m optie):
[Files]
"C:\MyApp\StartPage.html" "default.html"
"C:\Program Files (x86)\example.txt" "misc\example.txt"
"\\MyServer\path\icon.png" "icon.png"
"my app files\readme.txt" "my app files\readme.txt"
"CustomManifest.xml" "AppxManifest.xml"
Wanneer u een toewijzingsbestand gebruikt, kunt u kiezen of u de optie /m wilt gebruiken. Met de optie /m kan de gebruiker de metagegevens van de resource opgeven in het toewijzingsbestand dat moet worden opgenomen in het gegenereerde manifest. Als u de optie /m gebruikt, moet het toewijzingsbestand een sectie bevatten die begint met de regel [ResourceMetadata], gevolgd door regels die 'ResourceDimensions' en 'ResourceId' opgeven. Het is mogelijk dat een app-pakket meerdere 'ResourceDimensions' bevat, maar er kan maar één 'ResourceId' zijn.
Voorbeeld van een toewijzingsbestand (met de optie /m):
[ResourceMetadata]
"ResourceDimensions" "language-en-us"
"ResourceId" "English"
[Files]
"images\en-us\logo.png" "en-us\logo.png"
"en-us.pri" "resources.pri"
Semantische validatie uitgevoerd door MakeAppx.exe
MakeAppx.exe voert een beperkte sematic-validatie uit die is ontworpen om de meest voorkomende implementatiefouten te ondervangen en ervoor te zorgen dat het app-pakket geldig is. Zie de optie /nv als u validatie wilt overslaan tijdens het gebruik van MakeAppx.exe.
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.
Dit is geen volledige semantische validatie, omdat deze alleen is ontworpen om veelvoorkomende fouten te ondervangen. Pakketten die zijn gebouwd door MakeAppx.exe zijn niet gegarandeerd te installeren.