Freigeben über


Generieren einer Vorlagendatei für Befehlszeilenkonvertierungen

Mit dem MSIX Packaging Tool können Sie die Konvertierung auf zwei Arten ausführen: über die interaktive Benutzeroberfläche oder über unsere Befehlszeilenoption. Wenn Sie die Befehlszeile verwenden, müssen Sie eine Vorlagendatei bereitstellen, damit die Konvertierung mit Ihren spezifischen Einstellungen und Anforderungen funktioniert. Dieser Artikel hilft Ihnen bei der Erstellung einer Vorlagendatei, die für Sie geeignet ist.

Es gibt zwei Möglichkeiten, wie Sie eine Vorlagendatei abrufen können, die für Sie geeignet ist:

  • Sie können die Benutzeroberfläche des MSIX Packaging Tools verwenden. In den Einstellungen des Tools können Sie angeben, dass Sie eine Konvertierungsvorlagendatei mit jedem von Ihnen erstellten MSIX-Paket generieren möchten.
  • Sie können eine Beispielvorlage erstellen und die konfigurationen, die Sie für jede Konvertierung benötigen, manuell eingeben.

Generieren einer Konvertierungsvorlagendatei aus dem MSIX Packaging Tool

  1. Starten Sie das MSIX Packaging Tool.
  2. Wechseln Sie zu den Einstellungen in der oberen rechten Ecke der Anwendung.
  3. Stellen Sie sicher, dass die Option "Befehlszeilendatei mit jedem Paket generieren" ausgewählt ist.
  4. Nehmen Sie alle weiteren Änderungen oder Anpassungen an Ihren Einstellungen, die Sie benötigen, vor (z. B. Ausschlusselemente, Beendigungscodes).
  5. Speichern Sie die Einstellungen.
  6. Durchlaufen Sie den Anwendungspaketworkflow mithilfe eines Installers.
    • Wenn Sie kein Installationsprogramm auswählen, können Sie keine Konvertierungsvorlagendatei generieren.
    • Wenn Sie eine EXE-Datei verwenden, müssen Sie ein stilles Flag an Ihr Installationsprogramm übergeben, um die Konvertierungsvorlagendatei zu generieren.
  7. Am Ende der Konvertierung haben Sie eine Vorlagendatei basierend auf dem ausgewählten Installationsprogramm und ihren aktuellen Einstellungen konfiguriert, die Sie jetzt für zukünftige Konvertierungen wiederverwenden können.
    • Standardmäßig wird die Konvertierungsvorlagendatei an demselben Speicherort wie Ihr MSIX-Paket gespeichert, Sie können jedoch auf der Seite "Paket erstellen" einen separaten Speicherort für die Vorlagendatei angeben.
    • Sie müssen trotzdem einige Änderungen vornehmen, die davon anhängen, welche MSIX Sie am Ende jeder Konvertierung ausgeben möchten.

Manuelles Bearbeiten der Konvertierungsvorlagendatei

Sie können die Vorlagenparameter für die Konvertierungsvorlagendatei manuell bearbeiten, um eine Vorlagendatei zu generieren, die für Sie geeignet ist. Achten Sie beim Generieren der Konvertierungsvorlagendatei darauf, welche Features Sie der Vorlagendatei hinzufügen, da einige möglicherweise zusätzliche Schemaverweise erfordern, um zu funktionieren.

Referenz der Parameter für Konvertierungsvorlagen

Hier ist die vollständige Liste der Parameter, die Sie in der Konvertierungsvorlagendatei verwenden können.

ConversionSettings Beschreibung
Einstellungen:: Telemetrie zulassen [optional] Aktiviert die Telemetrieprotokollierung für diesen Aufruf des Tools.
Settings::ApplyAllPrepareComputerFixes [Optional:] Wendet alle empfohlenen Korrekturen zur Vorbereitung des Computers an. Kann nicht festgelegt werden, wenn andere Attribute verwendet werden.
Settings::GenerateCommandLineFile [optional] Kopiert die Vorlagendateieingabe in das SaveLocation-Verzeichnis zur zukünftigen Verwendung.
Settings::AllowPromptForPassword [optional] Weist das Tool an, den Benutzer aufzufordern, Kennwörter für den virtuellen Computer und das Signaturzertifikat einzugeben, falls erforderlich und nicht angegeben.
Settings::EnforceMicrosoftStoreVersioningRequirements [optional] Weist das Tool an, das Paketversionsverwaltungsschema zu erzwingen, das für die Bereitstellung aus dem Microsoft Store und dem Microsoft Store für Unternehmen erforderlich ist.
Einstellungen:: ServerPortNummer [optional] Wird beim Herstellen einer Verbindung mit einem Remotecomputer verwendet. Erfordert v2 des Vorlagenschemas.
Settings::AddPackageIntegrity [optional] Fügt allen generierten MSIX-Dateien die Paketintegrität hinzu. Erfordert v5 des Vorlagenschemas.
GültigeInstallerBeendigungscodes [optional] 0 oder mehr ValidInstallerExitCode-Elemente. Erfordert v2 des Vorlagenschemas.
ValidInstallerExitCodes::ValidInstallerExitCode [optional] Geben Sie alle Installations-Exitcodes an, mit denen das Tool möglicherweise nicht vertraut ist oder einen Neustart erfordert. Erfordert v2 des Vorlagenschemas.
ValidInstallerExitCodes::ValidInstallerExitCode::Reboot [optional] Geben Sie an, ob ein Exitcode während der Konvertierung einen Neustart auslösen soll. Erfordert v3 des Vorlagenschemas.
Ausschlussobjekte [optional] 0 oder mehr FileExclusion- oder RegistryExclusion-Elemente. Alle FileExclusion-Elemente müssen vor allen RegistryExclusion-Elementen angezeigt werden.
ExclusionItems::FileExclusion [optional] Eine Datei, die für das Verpacken ausgeschlossen werden soll.
ExclusionItems::FileExclusion::ExcludePath Pfad zu der Datei, die bei der Paketerstellung auszuschließen ist.
ExclusionItems::RegistryExclusion [Optional:] Ein Registrierungsschlüssel, der bei der Paketerstellung auszuschließen ist.
ExclusionItems::RegistryExclusion::ExcludePath Pfad zu dem Registrierungsschlüssel, der bei der Paketerstellung auszuschließen ist.
PrepareComputer::D isableDefragService [optional] Deaktiviert die Windows-Defragmentierung, während die App konvertiert wird. Wenn dieser Parameter auf FALSE festgelegt ist, wird ApplyAllPrepareComputerFixes überschrieben.
BereiteComputerVor:: Windows-SuchdienstDeaktivieren [optional] Deaktiviert die Windows-Suche, während die App konvertiert wird. Wenn dieser Parameter auf FALSE festgelegt ist, wird ApplyAllPrepareComputerFixes überschrieben.
PrepareComputer::DisableSmsHostService [optional] Deaktiviert den SMS-Host, während die App konvertiert wird. Wenn dieser Parameter auf FALSE festgelegt ist, wird ApplyAllPrepareComputerFixes überschrieben.
PrepareComputer:: DeaktiviereWindowsUpdateDienst [optional] Deaktiviert Windows Update, während die App konvertiert wird. Wenn dieser Parameter auf FALSE festgelegt ist, wird ApplyAllPrepareComputerFixes überschrieben.
SaveLocation [optional] Ein Element, das den Speicherort des Tools angibt. Wenn nicht angegeben, wird das Paket unter dem Desktopordner gespeichert.
SaveLocation::P ackagePath [optional] Der Pfad zu der Datei oder dem Ordner, in dem das resultierende MSIX-Paket gespeichert wird.
SaveLocation::TemplatePath [optional] Der Pfad zu der Datei oder dem Ordner, in dem die resultierende Befehlszeilenvorlage gespeichert wird.
Installer::P ath Der Pfad zum Anwendungsinstallationsprogramm.
Installer::Argumente [optional] Die Argumente, die an das Installationsprogramm übergeben werden sollen. Das Tool führt MSI-Installationsprogramme mithilfe des Arguments „/qn /norestart INSTALLSTARTMENUSHORTCUTS=1 DISABLEADVTSHORTCUTS=1“ automatisch und unbeaufsichtigt aus. HINWEIS: Sie müssen die Argumente übergeben, um das Installationsprogramm zur stillen Ausführung zu zwingen, wenn Sie .exe Installationsprogramme verwenden.
Installer::Installationsort [optional] Der vollständige Pfad zum Stammordner Ihrer Anwendung für die installierten Dateien, wenn sie installiert wurden (z. B. "C:\Programme (x86)\MyAppInstalllocation").
Installer::IstUnbeaufsichtigteInstallationOhneArgument [optional] Dieses Attribut sollte verwendet werden, wenn die App eine Installation im unbeaufsichtigten Modus ohne stille Parameter erlaubt. Dieses Attribut wird nur für .exe Installer verwendet.
Virtuelle Maschine [optional] Ein Element, das angibt, dass die Konvertierung auf einem lokalen virtuellen Computer ausgeführt wird.
VirtualMachine::Name Der Name des virtuellen Computers, der für die Konvertierungsumgebung verwendet werden soll.
VirtualMachine::Username Der Benutzername für den virtuellen Computer, der für die Konvertierungsumgebung verwendet werden soll.
RemoteMachine [optional] Ein Element, das angibt, dass die Konvertierung auf einem Remotecomputer ausgeführt wird. Erfordert v2 des Vorlagenschemas.
RemoteMachine::ComputerName Der Name des Remotecomputers, der für die Konvertierungsumgebung verwendet werden soll. Erfordert v2 des Vorlagenschemas.
RemoteMachine:: Benutzername Der Benutzername für den Remotecomputer, der für die Konvertierungsumgebung verwendet werden soll. Erfordert v2 des Vorlagenschemas.
RemoteMachine:: Automatische Anmeldung aktivieren [optional] Dadurch werden Sie automatisch eingeloggt, wenn Sie eine Konvertierung durchführen, die einen Neustart auf einem Remote-Computer erfordert, sodass Ihre Konvertierung nahtlos fortgesetzt wird. Erfordert V3 des Vorlagenschemas.
PackageInformation::P ackageName Der Paketname für Ihr MSIX-Paket.
PackageInformation::P ackageDisplayName Der Paketanzeigename für Ihr MSIX-Paket.
PackageInformation::P ublisherName Der Publisher für Ihr MSIX-Paket.
PackageInformation::P ublisherDisplayName Der Publisher-Anzeigename für Ihr MSIX-Paket.
PackageInformation::Version Die Versionsnummer für Ihr MSIX-Paket.
PackageInformation::P ackageDescription [optional] Die Beschreibung für Ihr MSIX-Paket. Erfordert v4 des Vorlagenschemas.
PackageInformation::MainPackageNameForModificationPackage [Optional:] Der Paketidentitätsname des Hauptpaketnamens. Dies wird beim Erstellen eines Änderungspakets verwendet, das eine Abhängigkeit von einer Hauptanwendung (übergeordneter Anwendung) akzeptiert.
Signaturinformationen [optional] Ein Element zum Angeben von Signaturinformationen für die Device Guard-Signatur. Erfordert v4 des Vorlagenschemas.
SigningInformation::DeviceGuardSigning [optional] Ein Element zum Angeben von Device Guard-Signaturinformationen. Erfordert v4 des Vorlagenschemas.
DeviceGuardSigning::TokenFile Das Azure AD-Zugriffstoken, das für die Device Guard-Anmeldung im JSON-Format erforderlich ist. Erfordert ein v4-Vorlagenschema.
DeviceGuardSigning::TimestampUrl [optional] Stellt zum Zeitpunkt der Signierung mit Device Guard einen Zeitstempel bereit, um sicherzustellen, dass Ihre Anwendung über die Lebensdauer des Zertifikats hinaus installiert wird. Erfordert v4 des Vorlagenschemas.
Anträge [optional] 0 oder mehr Anwendungselemente zum Konfigurieren der Anwendungseinträge in Ihrem MSIX-Paket.
Anwendung::Id Die App-ID für Ihre MSIX-Anwendung. Diese ID wird für den erkannten Anwendungseintrag verwendet, der mit dem angegebenen ausführbaren Namen übereinstimmt. Sie können mehrere Anwendungs-ID-Werte für ausführbare Dateien im Paket haben.

Dieser Wert ist der eindeutige Bezeichner der Anwendung innerhalb des Pakets. Dieser Wert wird manchmal als paketrelativer App-Bezeichner (PRAID) bezeichnet. Die ID muss innerhalb des Pakets eindeutig sein (dieselbe ID kann nicht mehr als einmal im selben Paket verwendet werden). Die ID darf jedoch nicht global eindeutig sein. Möglicherweise gibt es ein weiteres Paket auf dem System, das dieselbe ID verwendet.

Diese Zeichenfolge enthält alphanumerische Felder, die durch Punkte getrennt sind. Jedes Feld muss mit einem ALPHABETISCHEN ASCII-Zeichen beginnen. Sie können diese nicht als Feldwerte verwenden: "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8" und "LPT9".
Application::D isplayName Der App-Anzeigename für Ihr MSIX-Paket. Dieser Anzeigename wird für den erkannten Anwendungseintrag verwendet, der mit dem angegebenen ExecutableName übereinstimmt.
Application::ExecutableName Der name der ausführbaren Datei für die MSIX-Anwendung, die dem Paketmanifest hinzugefügt wird. Der entsprechende Anwendungseintrag wird ignoriert, wenn keine Anwendung mit diesem Namen erkannt wird.
Application::Beschreibung [optional] Die App-Beschreibung für Ihre MSIX-Anwendung. Wenn dieser Parameter nicht verwendet wird, wird der DisplayName der Anwendung verwendet. Diese Beschreibung wird für den erkannten Anwendungseintrag verwendet, der mit dem angegebenen ExecutableName übereinstimmt.
Fähigkeiten [optional] 0 oder mehr Funktionselemente, um Ihrem MSIX-Paket benutzerdefinierte Funktionen hinzuzufügen. Die Funktion "runFullTrust" wird während der Konvertierung standardmäßig hinzugefügt.
Fähigkeit::Name Die Funktion, die dem MSIX-Paket hinzugefügt werden soll.

Beispiel für eine Konvertierungsvorlagendatei

<MsixPackagingToolTemplate
    xmlns="http://schemas.microsoft.com/appx/msixpackagingtool/template/2018"
    xmlns:V2="http://schemas.microsoft.com/msix/msixpackagingtool/template/1904"
    xmlns:V3="http://schemas.microsoft.com/msix/msixpackagingtool/template/1907"
    xmlns:V4="http://schemas.microsoft.com/msix/msixpackagingtool/template/1910"
    xmlns:V5="http://schemas.microsoft.com/msix/msixpackagingtool/template/2001">
<!--Note: You only need to include xmlns:v2 - xmlns:v5 if you are using one of the features that use those schemas -->

    <Settings
        AllowTelemetry="true"
        ApplyAllPrepareComputerFixes="true"
        GenerateCommandLineFile="true"
        AllowPromptForPassword="false" 
	    EnforceMicrosoftStoreVersioningRequirements="false"
        v2:ServerPortNumber="1599"
        v5:AddPackageIntegrity="true">    

	<!--Note: Exclusion items are optional and if declared take precedence over the default tool exclusion items
        <ExclusionItems>
            <FileExclusion ExcludePath="[{CryptoKeys}]" />
            <FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Crypto" />
            <FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Search\Data" />
            <FileExclusion ExcludePath="[{Cookies}]" />
            <FileExclusion ExcludePath="[{History}]" />
            <FileExclusion ExcludePath="[{Cache}]" />
            <FileExclusion ExcludePath="[{Personal}]" />
            <FileExclusion ExcludePath="[{Profile}]\Local Settings" />
            <FileExclusion ExcludePath="[{Profile}]\NTUSER.DAT.LOG1" />
            <FileExclusion ExcludePath="[{Profile}]\ NTUSER.DAT.LOG2" />
            <FileExclusion ExcludePath="[{Recent}]" />
            <FileExclusion ExcludePath="[{Windows}]\debug" />
            <FileExclusion ExcludePath="[{Windows}]\Logs\CBS" />
            <FileExclusion ExcludePath="[{Windows}]\Temp" />
            <FileExclusion ExcludePath="[{Windows}]\WinSxS\ManifestCache" />
            <FileExclusion ExcludePath="[{Windows}]\WindowsUpdate.log" />
	    <FileExclusion ExcludePath="[{Windows}]\Installer" />
            <FileExclusion ExcludePath="[{AppVPackageDrive}]\$Recycle.Bin " />
            <FileExclusion ExcludePath="[{AppVPackageDrive}]\System Volume Information" />
	    <FileExclusion ExcludePath="[{AppVPackageDrive}]\Config.Msi" />
            <FileExclusion ExcludePath="[{AppData}]\Microsoft\AppV" />
            <FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Microsoft Security Client" />
            <FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Microsoft Antimalware" />
            <FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Windows Defender" />
            <FileExclusion ExcludePath="[{ProgramFiles}]\Microsoft Security Client" />
            <FileExclusion ExcludePath="[{ProgramFiles}]\Windows Defender" />
	    <FileExclusion ExcludePath="[{ProgramFiles}]\WindowsApps" />
            <FileExclusion ExcludePath="[{Local AppData}]\Temp" />
	    <FileExclusion ExcludePath="[{Local AppData}]\Microsoft\Windows" />
	    <FileExclusion ExcludePath="[{Local AppData}]\Packages" />

            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\Cryptography" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware Setup" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\Microsoft Security Client" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Policies\Microsoft\Microsoft Antimalware" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" />
            <RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU" />
            <RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU" />
            <RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams" />
            <RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Streams" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\AppV" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Wow6432Node\Microsoft\AppV" />
            <RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Microsoft\AppV" />
            <RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Wow6432Node\Microsoft\AppV" />
        </ExclusionItems>
	-->
    
    <!--Note: Specifying an installer exit code will allow you to automatically trigger a reboot during your conversion
      <v2:ValidInstallerExitCodes>
        <V2:ValidInstallerExitCode ExitCode="3010" V3:Reboot="true"/>
        <V2:ValidInstallerExitCode ExitCode="1641"/>
      </v2:ValidInstallerExitCodes>
    -->
	    
    </Settings>

    <!--Note: this section takes precedence over the Settings::ApplyAllPrepareComputerFixes attribute and is optional
    <PrepareComputer
        DisableDefragService="true"
        DisableWindowsSearchService="true"
        DisableSmsHostService="true"
        DisableWindowsUpdateService="true"/>
    -->

    <SaveLocation
        PackagePath="C:\users\user\Desktop\MyPackage.msix" 
        TemplatePath="C:\users\user\Desktop\MyTemplate.xml" />

    <Installer
        Path="C:\MyAppInstaller.msi"
        InstallLocation="C:\Program Files\MyAppInstallLocation" />
	
    <!--NOTE: This section specifies that the conversion will be run on a local Virtual Machine. This is optional if you want to change your conversion environment from the default local machine.
    <VirtualMachine Name="vmname" Username="vmusername"/>
    -->

    <!--NOTE: This section specifies that the conversion will be run on a remote machine.This is optional if you want to change your conversion environment from the default local machine.
    <v2:RemoteMachine ComputerName="vmname" Username="vmusername" v3:EnableAutoLogon="true"/>
    -->

    <PackageInformation
        PackageName="MyAppPackageName"
        PackageDisplayName="MyApp Display Name"
        PublisherName="CN=MyPublisher"
        PublisherDisplayName="MyPublisher Display Name"
        Version="1.1.0.0"
        MainPackageNameForModificationPackage="MainPackageIdentityName">

    <!--Note: This is optional, if you want to sign your package with Device Guard signing
        <v4:SigningInformation>
            <v4:DeviceGuardSigning
                Tokenfile="tokenfile.json"
                TimestampUrl="https://mytimestamp.com"/>
        </v4:SigningInformation>
    -->
        
	<!--NOTE: This ID will be used if the Application entry detected matches the specified ExecutableName
        <Applications>
            <Application
                Id="MyApp1"
                Description="MyApp"
                DisplayName="My App"
                ExecutableName="MyApp.exe"/>
        </Applications>
	-->

	<!--NOTE: This is optional as “runFullTrust” capability is added by default during conversion
        <Capabilities>
            <Capability Name="runFullTrust" />
        </Capabilities>
	-->
	    
    </PackageInformation>
</MsixPackagingToolTemplate>