Bagikan melalui


Cara membuat file templat untuk konversi baris perintah

Dengan MSIX Packaging Tool, Anda dapat melakukan konversi dengan dua cara: melalui UI interaktif atau melalui opsi baris perintah kami. Saat menggunakan baris perintah, Anda perlu menyediakan file templat sehingga konversi berfungsi dengan pengaturan dan kebutuhan spesifik Anda. Artikel ini akan membantu memandu Anda melalui proses pembuatan file templat yang berfungsi untuk Anda.

Ada dua cara agar Anda bisa mendapatkan file templat yang sesuai untuk Anda:

  • Anda dapat menggunakan UI MSIX Packaging Tool. Dalam pengaturan alat, Anda dapat menentukan bahwa Anda ingin membuat file templat konversi dengan setiap paket MSIX yang Anda buat.
  • Anda dapat mengambil templat sampel dan memasukkan konfigurasi yang Anda butuhkan secara manual untuk setiap konversi.

Membuat file templat konversi dari MSIX Packaging Tool

  1. Luncurkan MSIX Packaging Tool.
  2. Buka pengaturan di sudut kanan atas aplikasi.
  3. Pastikan bahwa opsi 'Buat file baris perintah dengan setiap paket' dipilih.
  4. Buat perubahan atau modifikasi lain pada pengaturan yang Anda butuhkan (misalnya item pengecualian, kode keluar).
  5. Simpan pengaturan
  6. Buka alur kerja Paket Aplikasi menggunakan alat penginstal.
    • Jika Anda tidak memilih alat penginstal, Anda tidak akan dapat membuat file templat konversi.
    • Jika Anda menggunakan exe, Anda harus meneruskan bendera senyap ke alat penginstal Anda untuk menghasilkan file templat konversi.
  7. Di akhir konversi, Anda akan memiliki file templat yang dikonfigurasi berdasarkan alat penginstal yang Anda pilih, dan pengaturan Anda saat ini yang sekarang dapat Anda gunakan kembali untuk konversi di masa mendatang.
    • Secara default, file templat konversi akan disimpan di lokasi yang sama dengan paket MSIX Anda, tetapi Anda dapat menentukan lokasi penyimpanan terpisah untuk file templat Anda di halaman Buat paket.
    • Anda masih perlu melakukan beberapa modifikasi berdasarkan MSIX apa yang Anda inginkan output di akhir setiap konversi.

Mengedit file templat konversi secara manual

Anda dapat mengedit parameter templat secara manual untuk file templat konversi untuk menghasilkan file templat yang berfungsi untuk Anda. Saat membuat file templat konversi, perhatikan fitur mana yang Anda tambahkan ke dalam file templat, karena beberapa mungkin memerlukan referensi skema tambahan agar berfungsi.

Referensi parameter templat konversi

Berikut adalah daftar lengkap parameter yang dapat Anda gunakan dalam file templat Konversi.

Konversi Pengaturan Keterangan
Pengaturan:: AllowTelemetry [opsional] Mengaktifkan pengelogan telemetri untuk pemanggilan alat ini.
Pengaturan:: ApplyAllPrepareComputerFixes [opsional] Menerapkan semua perbaikan komputer persiapan yang direkomendasikan. Tidak dapat diatur ketika atribut lain digunakan.
Pengaturan:: GenerateCommandLineFile [opsional] Menyalin input file templat ke direktori SaveLocation untuk digunakan di masa mendatang.
Pengaturan:: AllowPromptForPassword [opsional] Menginstruksikan alat untuk meminta pengguna memasukkan kata sandi untuk Komputer Virtual dan untuk sertifikat penandatanganan jika diperlukan dan tidak ditentukan.
Pengaturan:: EnforceMicrosoftStoreVersioningRequirements [opsional] Menginstruksikan alat untuk menerapkan skema penerapan versi paket yang diperlukan untuk penyebaran dari Microsoft Store dan Microsoft Store untuk Bisnis.
Pengaturan:: ServerPortNumber [opsional] Digunakan saat menyambungkan ke komputer jarak jauh. Memerlukan v2 skema templat.
Pengaturan:: AddPackageIntegrity [opsional] Menambahkan Integritas Paket ke setiap MSIX yang dihasilkan. Memerlukan v5 skema templat.
ValidInstallerExitCodes [opsional] 0 atau lebih elemen ValidInstallerExitCode. Memerlukan v2 skema templat.
ValidInstallerExitCodes:: ValidInstallerExitCode [opsional] Tentukan kode keluar alat penginstal apa pun yang mungkin tidak terbiasa dengan alat atau memerlukan boot ulang. Memerlukan v2 skema templat.
ValidInstallerExitCodes:: ValidInstallerExitCode:: Reboot [opsional] Tentukan apakah kode keluar harus memicu boot ulang selama konversi. Memerlukan v3 skema templat.
ExclusionItems [opsional] 0 atau lebih elemen FileExclusion atau RegistryExclusion. Semua elemen FileExclusion harus muncul sebelum elemen RegistryExclusion apa pun.
ExclusionItems::FileExclusion [opsional] File yang akan dikecualikan untuk pengemasan.
ExclusionItems::FileExclusion::ExcludePath Jalur ke file yang akan dikecualikan untuk pengemasan.
ExclusionItems::RegistryExclusion [opsional] Kunci registri untuk dikecualikan untuk pengemasan.
ExclusionItems::RegistryExclusion:: ExcludePath Jalur ke registri untuk dikecualikan untuk pengemasan.
PrepareComputer::D isableDefragService [opsional] Menonaktifkan Windows Defragmenter saat aplikasi sedang dikonversi. Jika diatur ke false, ambil alih ApplyAllPrepareComputerFixes.
PrepareComputer:: DisableWindowsSearchService [opsional] Menonaktifkan Windows Search saat aplikasi sedang dikonversi. Jika diatur ke false, ambil alih ApplyAllPrepareComputerFixes.
PrepareComputer:: DisableSmsHostService [opsional] Menonaktifkan SMS Host saat aplikasi sedang dikonversi. Jika diatur ke false, ambil alih ApplyAllPrepareComputerFixes.
PrepareComputer:: DisableWindowsUpdateService [opsional] Menonaktifkan Windows Update saat aplikasi sedang dikonversi. Jika diatur ke false, ambil alih ApplyAllPrepareComputerFixes.
SaveLocation [opsional] Elemen untuk menentukan lokasi penyimpanan alat. Jika tidak ditentukan, paket akan disimpan di bawah folder Desktop.
SaveLocation::P ackagePath [opsional] Jalur ke file atau folder tempat paket MSIX yang dihasilkan disimpan.
SaveLocation::TemplatePath [opsional] Jalur ke file atau folder tempat templat baris perintah yang dihasilkan disimpan.
Installer::P ath Jalur ke alat penginstal aplikasi.
Penginstal::Argumen [opsional] Argumen yang akan diteruskan ke alat penginstal. Alat ini akan secara otomatis menjalankan alat penginstal MSI secara diam-diam menggunakan argumen "/qn /norestart INSTALLSTARTMENUSHORTCUTS=1 DISABLEADVTSHORTCUTS=1". CATATAN: Anda harus meneruskan argumen untuk memaksa alat penginstal Anda berjalan diam-diam jika Anda menggunakan penginstal .exe.
Penginstal::InstallLocation [opsional] Jalur lengkap ke folder akar aplikasi Anda untuk file yang diinstal jika diinstal (misalnya" C:\Program Files (x86)\MyAppInstalllocation").
Penginstal::IsUnattendedInstallWithoutArgument [opsional] Atribut ini harus digunakan jika aplikasi memungkinkan penginstalan 'Tanpa Pengawas' tanpa argumen senyap. Atribut ini hanya digunakan untuk penginstal .exe.
Komputer Virtual [opsional] Elemen untuk menentukan bahwa konversi akan dijalankan pada Komputer Virtual lokal.
VirtualMachine::Name Nama komputer virtual yang akan digunakan untuk lingkungan konversi.
VirtualMachine::Nama Pengguna Nama pengguna untuk komputer virtual yang akan digunakan untuk lingkungan konversi.
RemoteMachine [opsional] Elemen untuk menentukan bahwa konversi akan dijalankan pada komputer jarak jauh. Memerlukan v2 skema templat.
RemoteMachine:: ComputerName Nama komputer jarak jauh yang akan digunakan untuk lingkungan konversi. Memerlukan v2 skema templat.
RemoteMachine:: Nama pengguna Nama pengguna untuk komputer jarak jauh yang akan digunakan untuk lingkungan konversi. Memerlukan v2 skema templat.
RemoteMachine:: EnableAutoLogon [opsional] Ini akan secara otomatis memasukkan Anda kembali saat melakukan konversi yang memerlukan mulai ulang pada komputer jarak jauh sehingga konversi Anda berlanjut dengan mulus. Memerlukan V3 dari skema templat.
PackageInformation::P ackageName Nama Paket untuk paket MSIX Anda.
PackageInformation::P ackageDisplayName Nama Tampilan Paket untuk paket MSIX Anda.
PackageInformation::P ublisherName Publisher untuk paket MSIX Anda.
PackageInformation::P ublisherDisplayName Nama Tampilan Publisher untuk paket MSIX Anda.
PackageInformation::Version Nomor versi untuk paket MSIX Anda.
PackageInformation::P ackageDescription [opsional] Deskripsi untuk paket MSIX Anda. Memerlukan v4 skema templat.
PackageInformation:: MainPackageNameForModificationPackage [opsional] Nama identitas Paket dari nama paket utama. Ini digunakan saat membuat paket modifikasi yang mengambil dependensi pada aplikasi utama (induk).
SigningInformation [opsional] Elemen untuk menentukan informasi penandatanganan untuk penandatanganan Device Guard. Memerlukan v4 skema templat.
SigningInformation:: DeviceGuardSigning [opsional] Elemen untuk menentukan informasi penandatanganan Device Guard. Memerlukan v4 skema templat.
DeviceGuardSigning:: TokenFile Token akses Azure ACTIVE Directory diperlukan untuk penandatanganan Device Guard dalam format JSON. Memerlukan skema templat v4.
DeviceGuardSigning:: TimestampUrl [opsional] Menyediakan tanda waktu pada saat penandatanganan dengan Device Guard untuk memastikan bahwa aplikasi Anda akan diinstal melebihi masa pakai sertifikat. Memerlukan v4 skema templat.
Aplikasi [opsional] 0 elemen Aplikasi atau lebih untuk mengonfigurasi entri Aplikasi dalam paket MSIX Anda.
Application::Id ID Aplikasi untuk aplikasi MSIX Anda. ID ini akan digunakan untuk entri Aplikasi yang terdeteksi yang cocok dengan ExecutableName yang ditentukan. Anda dapat memiliki beberapa nilai ID Aplikasi untuk executable dalam paket.

Nilai ini adalah pengidentifikasi unik aplikasi dalam paket. Nilai ini terkadang disebut sebagai pengidentifikasi aplikasi relatif paket (PRAID). ID harus unik dalam paket (ID yang sama tidak dapat digunakan lebih dari sekali dalam paket yang sama). Namun, ID tidak boleh unik secara global. Mungkin ada paket lain pada sistem yang menggunakan ID yang sama.

String ini berisi bidang alfa-numerik yang dipisahkan oleh titik. Setiap bidang harus dimulai dengan karakter alfabet ASCII. Anda tidak dapat menggunakan ini sebagai nilai bidang: "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", dan "LPT9".
Application::D isplayName Nama Tampilan Aplikasi untuk paket MSIX Anda. Nama Tampilan ini akan digunakan untuk entri aplikasi yang terdeteksi cocok dengan ExecutableName yang ditentukan
Application::ExecutableName Nama yang dapat dieksekusi untuk aplikasi MSIX yang akan ditambahkan ke manifes paket. Entri aplikasi yang sesuai akan diabaikan jika tidak ada aplikasi dengan nama ini yang terdeteksi.
Application::D escription [opsional] Deskripsi Aplikasi untuk aplikasi MSIX Anda. Jika tidak digunakan, Application DisplayName akan digunakan. Deskripsi ini akan digunakan untuk entri aplikasi yang terdeteksi yang cocok dengan ExecutableName yang ditentukan
Kemampuan [opsional] 0 elemen Kemampuan atau lebih untuk menambahkan kemampuan kustom ke paket MSIX Anda. Kemampuan "runFullTrust" ditambahkan secara default selama konversi.
Kapabilitas::Nama Kemampuan untuk menambahkan ke paket MSIX Anda.

Contoh file templat konversi

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