Dela via


Apppaketerare (MakeAppx.exe)

Not

UWP-vägledning om hur du använder det här verktyget finns i Skapa ett apppaket med MakeAppx.exe-verktyget.

 

Apppaketeraren (MakeAppx.exe) skapar ett apppaket från filer på disken eller extraherar filerna från ett apppaket till en disk. Från och med Windows 8.1 skapar App-paketeraren även ett paketpaket från apppaket på disk eller extraherar apppaketen från ett paketpaket till en disk. Det ingår i Microsoft Visual Studio och Windows Software Development Kit (SDK) för Windows 8 eller Windows Software Development Kit (SDK) för Windows 8.1 och senare. Besök Nedladdningar för utvecklare för att hämta dem.

Verktyget MakeAppx.exe finns vanligtvis på operativsystemversionsspecifika platser:

  • C:\Program Files (x86)\Windows Kits\10\bin<build number><architecture>\makeappx.exe

Där <arkitektur> = x86, x64, arm, ar64 eller chpe. Alternativt kan den finnas i:

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

Använda apppaketerare

Not

Relativa sökvägar stöds i hela verktyget.

 

Skapa ett paket med hjälp av en katalogstruktur

Placera AppxManifest.xml i roten i en katalog som innehåller alla nyttolastfiler för din app. En identisk katalogstruktur skapas för apppaketet och kommer att vara tillgänglig när paketet extraheras vid distributionstillfället.

  1. Placera alla filer i en enda katalogstruktur och skapa underkataloger efter behov.

  2. Skapa ett giltigt paketmanifest, AppxManifest.xmloch placera det i rotkatalogen.

  3. Kör det här kommandot:

    MakeAppx pack /dinput_directorypath/pfilepath.appx

Skapa ett paket med hjälp av en mappningsfil

  1. Skapa ett giltigt paketmanifest, AppxManifest.xml.

  2. Skapa en mappningsfil. Den första raden innehåller strängen [Files], och raderna som följer anger källsökvägarna (disk) och målsökvägarna (paket) i angivna strängar.

    [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. Kör det här kommandot:

    MakeAppx pack /fmapping_filepath/pfilepath.appx

Så här signerar du paketet med SignTool

  1. Skapa certifikatet. Utgivaren som anges i manifestet måste matcha utgivarens ämnesinformation för signeringscertifikatet. Mer information om hur du skapar ett signeringscertifikat finns i Så här skapar du ett signeringscertifikat för apppaket.

  2. Kör SignTool.exe för att signera paketet:

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

    hashAlgorithm måste matcha hash-algoritmen som användes för att skapa blockkartan när appen paketerades. Med verktyget MakeAppx-paketering är standardalgoritmen för Appx-blockkartan SHA256-. Kör SignTool.exe att ange SHA256 som algoritm för filsammandrag (/fd):

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

    Mer information om hur du signerar paket finns i Så här signerar du ett apppaket med Hjälp av SignTool.

Extrahera filer från ett paket

  1. Kör det här kommandot:

    MakeAppx packa upp /pfil.appx /doutput_directory

  2. Det uppackade paketet har samma struktur som det installerade paketet.

Skapa ett paketpaket med hjälp av en katalogstruktur

Vi använder kommandot bundle för att skapa ett apppaket med <namn på utdatapaket> genom att lägga till alla paket från <innehållskatalog> (inklusive undermappar). Om <innehållskatalog> innehåller ett paketmanifest ignoreras AppxBundleManifest.xml.

  1. Placera alla paket i en enda katalogstruktur och skapa underkataloger efter behov.

  2. Kör det här kommandot:

    MakeAppx-paket /dinput_directorypath/pfilepath.appxbundle

Skapa ett paketpaket med hjälp av en mappningsfil

Vi använder kommandot bundle för att skapa ett apppaket med namnet på <utdatapaket> genom att lägga till alla paket från en lista över paket i <mappningsfil>. Om <mappningsfil> innehåller ett paketmanifest ignoreras AppxBundleManifest.xml.

  1. Skapa en <mappningsfil>. Den första raden innehåller strängen [Files], och raderna som följer anger vilka paket som ska läggas till i paketet. Varje paket beskrivs av ett par sökvägar inom citattecken, avgränsade med blanksteg eller flikar. Sökvägarna representerar paketets källa (på disk) och mål (i paket). Alla målpaketnamn måste ha tillägget .appx.

        [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. Kör det här kommandot:

    MakeAppx-paket /fmapping_filepath/pfilepath.appxbundle

Extrahera paket från ett paket

  1. Kör det här kommandot:

    MakeAppx unbundle /pbundle_name.appxbundle /doutput_directory

  2. Det uppackade paketet har samma struktur som det installerade paketpaketet.

Så här krypterar du ett paket med en nyckelfil

  1. Skapa en nyckelfil. Nyckelfiler måste börja med en rad som innehåller strängen "[Nycklar]" följt av rader som beskriver de nycklar som paketet ska krypteras med. Varje nyckel beskrivs av ett par strängar inom citattecken, avgränsade med blanksteg eller flikar. Den första strängen representerar nyckel-ID:t och den andra strängen representerar krypteringsnyckeln i hexadecimal form.

        [Keys]
        "0"                 "1AC4CDCFF1924D2885A0607269787BA6BF09B7FFEBF74ED4B9D86E423CF9186B"
    
  2. Kör det här kommandot:

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

  3. Indatapaketet krypteras till det angivna krypterade paketet med hjälp av den angivna nyckelfilen.

Så här krypterar du ett paket med en global testnyckel

  1. Kör det här kommandot:

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

  2. Indatapaketet krypteras till det angivna krypterade paketet med hjälp av den globala testnyckeln.

Dekryptera ett paket med en nyckelfil

  1. Skapa en nyckelfil. Nyckelfiler måste börja med en rad som innehåller strängen "[Nycklar]" följt av rader som beskriver de nycklar som paketet ska krypteras med. Varje nyckel beskrivs av ett par strängar inom citattecken, avgränsade med blanksteg eller flikar. Den första strängen representerar det base64-kodade nyckel-ID:t på 32 byte och den andra strängen representerar den base64-kodade 32-byteskrypteringsnyckeln.

        [Keys]
        "OWVwSzliRGY1VWt1ODk4N1Q4R2Vqc04zMzIzNnlUREU="                 "MjNFTlFhZGRGZEY2YnVxMTBocjd6THdOdk9pZkpvelc="
    
  2. Kör det här kommandot:

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

  3. Indatapaketet dekrypteras till det angivna okrypterade paketet med hjälp av den angivna nyckelfilen.

Dekryptera ett paket med en global testnyckel

  1. Kör det här kommandot:

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

  2. Indatapaketet dekrypteras till det angivna okrypterade paketet med hjälp av den globala testnyckeln.

Användning

Kommandoradsargumentet /p krävs alltid med antingen /d, /feller /ep. Observera att /d, /foch /ep är ömsesidigt uteslutande.

MakeAppx-paketet [alternativ]/p<utdatapaketnamn>/d<innehållskatalog>

MakeAppx-paketet [alternativ]/p<utdatapaketnamn>/f<mappningsfil>

MakeAppx packa upp [alternativ]/p<indatapaketnamn>/d<utdatakatalog>

MakeAppx-paket [alternativ]/p<namn på utdatapaket>/d<innehållskatalog>

MakeAppx-paket [alternativ]/p<namn på utdatapaket>/f<mappningsfil>

MakeAppx unbundle [alternativ]/p<indatapaketnamn>/d<utdatakatalog>

MakeAppx encrypt [options]/p<indatapaketnamn>/ep<utdatapaketnamn>

MakeAppx dekryptera [alternativ]/p<indatapaketnamn>/ep<utdatapaketnamn>

Kommandoradssyntax

Här är kommandoradens vanliga användningssyntax för MakeAppx.

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

MakeAppx packar eller packar upp filerna i ett paket, paketerar eller separerar paketen i ett paket eller krypterar eller dekrypterar apppaketet eller paketet i den angivna indatakatalogen eller mappningsfilen. Här är en lista över parametrar som gäller för MakeAppx-paketet, MakeAppx packa upp, MakeAppx-paket, MakeAppx-, MakeAppx krypteraeller MakeAppx-dekryptera.

/l

Det här alternativet används för lokaliserade paket. Standardvalideringsresorna för lokaliserade paket. Det här alternativet inaktiverar endast den specifika valideringen utan att kräva att all validering inaktiveras.

/o

Skriv över utdatafilen om den finns. Om du inte anger det här alternativet eller alternativet /no tillfrågas användaren om de vill skriva över filen.

Du kan inte använda det här alternativet med /no.

/no

Förhindrar en överskrivning av utdatafilen om den finns. Om du inte anger det här alternativet eller alternativet /o tillfrågas användaren om de vill skriva över filen.

Du kan inte använda det här alternativet med /o.

/nv

Hoppa över semantisk validering. Om du inte anger det här alternativet utför verktyget en fullständig validering av paketet.

/v

Aktivera utförliga loggningsutdata till konsolen.

/?

Visa hjälptext.

MakeAppx pack , MakeAppx unpack , MakeAppx bundle, MakeAppx unbundle, MakeAppx encryptoch MakeAppx dekryptera är ömsesidigt uteslutande kommandon. Här är de kommandoradsparametrar som gäller specifikt för varje kommando:

MakeAppx pack [h]

Skapar ett paket.

/halgoritm

Anger den hash-algoritm som ska användas när blockkartan skapas. Här är giltiga värden för algoritmen:

SHA256 (standard)
SHA384
SHA512

Du kan inte använda det här alternativet med kommandot packa upp.

MakeAppx packa upp [pfn]

Extraherar alla filer i det angivna paketet till den angivna utdatakatalogen. Utdata har samma katalogstruktur som paketet.

/pfn

Anger en katalog med namnet med paketets fullständiga namn. Den här katalogen skapas under den angivna utdataplatsen. Du kan inte använda det här alternativet med kommandot pack.

MakeAppx [pfn]

Packar upp alla paket till en underkatalog under den angivna utdatasökvägen med namnet efter paketets fullständiga namn. Utdata har samma katalogstruktur som det installerade paketpaketet.

/pfn

Anger en katalog med namnet med paketets fullständiga namn. Den här katalogen skapas under den angivna utdataplatsen. Du kan inte använda det här alternativet med kommandot bundle.

MakeAppx kryptera [kf, kt]

Skapar ett krypterat apppaket från det angivna indataapppaketet i det angivna utdatapaketet.

/kf<nyckelfil>

Krypterar paketet eller paketet med hjälp av nyckeln från den angivna nyckelfilen. Du kan inte använda det här alternativet med kt.

/kt

Krypterar paketet eller paketet med hjälp av den globala testnyckeln. Du kan inte använda det här alternativet med kf.

MakeAppx dekryptera [kf, kt]

Skapar ett okrypterat apppaket från det angivna indataapppaketet i det angivna utdatapaketet.

/kf<nyckelfil>

Dekrypterar paketet eller paketet med hjälp av nyckeln från den angivna nyckelfilen. Du kan inte använda det här alternativet med kt.

/kt

Dekrypterar paketet eller paketet med hjälp av den globala testnyckeln. Du kan inte använda det här alternativet med kf.

Semantisk validering utförd av MakeAppx

MakeAppx utför begränsad semantisk validering som är utformad för att fånga de vanligaste distributionsfelen och se till att apppaketet är giltigt.

Den här verifieringen säkerställer att:

  • Alla filer som refereras i paketmanifestet ingår i apppaketet.
  • Ett program har inte två identiska nycklar.
  • Ett program registreras inte för ett förbjudet protokoll från den här listan: SMB , FILE, MS-WWA-WEB, MS-WWA.

Den här semantiska valideringen är inte slutförd och paket som skapats av MakeAppx är inte garanterade att vara installerbara.