Cipta Pemasar Windows "MSI" menggunakan WiX part2

Tarikh penciptaan halaman :

Pada mulanya

Kali terakhir, kami menyediakan fail yang diperlukan dan menyediakan projek. Kali ini, edit "Product.wxs" dan buat pelbagai tetapan pemasar.

Edit seting pemasangan (Product.wxs)

Kandungan fail Product.wxs diterangkan dalam format XML. Terdapat beberapa parameter, tetapi pertama kami akan membuat tetapan minimum untuk memastikan pemasang boleh dicipta. Jika anda ingin menyediakannya dengan lebih terperinci, sila rujuk artikel lain atau laman web rasmi.

Pada masa penciptaan projek, kod kelihatan seperti ini:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*" Name="SetupLittleSaviorTrial_x86" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />

    <Feature Id="ProductFeature" Title="SetupLittleSaviorTrial_x86" Level="1">
      <ComponentGroupRef Id="ProductComponents" />
    </Feature>
  </Product>

  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="SetupLittleSaviorTrial_x86" />
      </Directory>
    </Directory>
  </Fragment>

  <Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
      <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
      <!-- <Component Id="ProductComponent"> -->
      <!-- TODO: Insert files, registry keys, and other resources here. -->
      <!-- </Component> -->
    </ComponentGroup>
  </Fragment>
</Wix>

Berikut ialah beberapa perkara yang perlu anda ubah: Tambah tag dan atribut yang tidak wujud.

Wix / Produk / @Id

Tetapkan GUID yang mengenalpasti aplikasi.

Terdapat banyak alat untuk menjana GUID, tetapi cepat untuk menggunakan alat yang disertakan dengan Visual Studio. Pilih menu "Alatan" dan "Cipta GUID".

image

Dapatkan kod 36 digit, termasuk tanda semangkuk, dan tetapkannya kepada Wix / Produk / @Id.

<Wix>
  <Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />

Wix / Produk / @Name

Ini adalah nama aplikasi yang dipaparkan di setiap bahagian skrin pemasar. Ia juga boleh menjadi nama yang muncul dalam senarai Tambah dan Alih Keluar Program.

<Wix>
  <Product Name="リトルセイバー 体験版" />

image

image

Wix / Produk / @Manufacturer

Masukkan nama pengilang. Ia muncul sebagai pengarang pemasar atau penerbit senarai atur cara.

<Wix>
  <Product Manufacturer="ソーサリーフォース">

image

image

Wix / Produk / UIRef / @Id

Masukkan ID yang mengenal pasti skrin apa untuk dipaparkan dalam pendeta pemasangan. Kali ini, kerana ia adalah konfigurasi minimum untuk memaparkan dan memasang hanya lesen, "WixUI_Minimal" ditentukan.

<Wix>
  <Product>
    <UIRef Id="WixUI_Minimal" />

Saya fikir laman web berikut akan membantu dalam jenis penetapan yang boleh dilakukan.

Menggunakan set dialog WixUI

Wix / Produk / WixVariable /*

Menentukan fail yang digunakan dalam UI pendeta. Konfigurasi minimum menggunakan tiga fail: Nilai id ditetapkan dan Nilai ialah nama fail.

<Wix>
  <Product>
    <WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
    <WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
    <WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />

Ikon aplikasi pemasangan

Ia digunakan untuk ikon aplikasi yang muncul dalam "Tambah dan Buang Atur Cara", dll.

Dalam "SumberFile" bagi elemen Ikon, tentukan fail ico sebagai laluan relatif dari folder projek.

"Property Id="ARPPRODUCTICON" adalah definisi perkaitan ikon.

<Wix>
  <Product>
    <Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
    <Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />

Wix / Fragment (konfigurasi folder fail)

Tetapkan konfigurasi folder untuk dipasang. Pada asalnya, anda juga akan meletakkan fail, tetapi hanya mencipta folder terlebih dahulu.

Nilai "Nama" yang ditetapkan kepada "Id="ProgramMenuDir" adalah nama folder yang diletakkan dalam pintasan menu mula. Tetapkan panduan juga.

<Wix>
  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="SetupLittleSaviorTrial_x86" />
      </Directory>
      <Directory Id="ProgramMenuFolder">
        <Directory Id="ProgramMenuDir" Name="リトルセイバー 体験版">
          <Component Id="ProgramMenuDir" Guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
            <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
            <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
          </Component>
        </Directory>
      </Directory>
    </Directory>
  </Fragment>

Tambah fail pemasangan

Anda juga boleh menambahnya ke fail Product.wxs secara tangan. Oleh kerana GUID diperlukan untuk fail, sukar untuk bekerja dengan lebih banyak fail. Jadi, untuk menambah fail, gunakan WixEdit untuk menambahnya.

Lancarkan WixEdit.

image

Buka fail Product.wxs.

image

image

Pilih Fail daripada ikon di sebelah kiri. Hapuskan folder di bawah Folder Di bawah Lipatan Atur Cara.

image

Klik kanan pada folder Folder Fail dan pilih Import Folder.

image

Pilih folder di mana anda mahu memasang fail.

image

Satu set fail ditambah ke pepohon.

image

Untuk dikaitkan dengan parameter lain, pilih folder yang ditambah dan setkan "Id" kembali ke "INSTALLFOLDER".

image

Cipta pintasan untuk menu Mula. pilih "Baru" dan "Pintasan" dari menu klik kanan fail exe.

image

Apabila Pintasan ditambah, pilihnya dan klik kanan kosong untuk menambah sifat.

image

Tambah parameter berikut: (Tukar nama unik untuk dipadankan dengan atur cara itu.)

Nilai atribut
Id LITTLESAVIORTRIAL. EXE_shortcut
Nama Perbicaraan Saber Kecil
Direktori ProgramMenuDir
WorkingDirectory INSTALLDIR
Ikon LITTLESAVIOR. ICO
IconIndex 0
Mengiklankan Ya

image

Kemudian pilih tab "Ciri", klik kanan pada "ProductFeature" dan pilih Pilih Komponen untuk ditambah.

image

Pilih semua.

image

Ditambah.

image

Simpan.

image

Product.wxs harus terlihat seperti ini:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" Name="リトルセイバー 体験版" Language="1033" Version="1.0.0.0" Manufacturer="ソーサリーフォース" UpgradeCode="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />
    <UIRef Id="WixUI_Minimal" />
    <WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
    <WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
    <WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
    <Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
    <Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
    <Feature Id="ProductFeature" Title="SetupLittleSaviorTrial_x86" Level="1">
      <ComponentGroupRef Id="ProductComponents" />
      <ComponentRef Id="LITTLESAVIOR.ICO" />
      <ComponentRef Id="LITTLESAVIORTRIAL.EXE" />
      <ComponentRef Id="LITTLESAVIORTRIAL.EXE.CONFIG" />
      <ComponentRef Id="ProgramMenuDir" />
    </Feature>
    <UI />
  </Product>
  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="LittleSaviorTrial">
          <Component Id="LITTLESAVIOR.ICO" DiskId="1" Guid="0B4DD82C-C6EF-4299-8EAB-4F9BB35FD952">
            <File Id="LITTLESAVIOR.ICO" Name="LittleSavior.ico" Source="LittleSaviorTrial\LittleSavior.ico" />
          </Component>
          <Component Id="LITTLESAVIORTRIAL.EXE" DiskId="1" Guid="8D805936-A25E-4DA6-9A0A-A5BDB2AD768D">
            <File Id="LITTLESAVIORTRIAL.EXE" Name="LittleSaviorTrial.exe" Source="LittleSaviorTrial\LittleSaviorTrial.exe" KeyPath="yes">
              <Shortcut Id="LITTLESAVIORTRIAL.EXE_shortcut" Name="リトルセイバー 体験版" Directory="ProgramMenuDir" WorkingDirectory="INSTALLDIR" Icon="LITTLESAVIOR.ICO" IconIndex="0" Advertise="yes" />
            </File>
          </Component>
          <Component Id="LITTLESAVIORTRIAL.EXE.CONFIG" DiskId="1" Guid="790C427A-A72C-4444-ACD6-ECF32AA788AD">
            <File Id="LITTLESAVIORTRIAL.EXE.CONFIG" Name="LittleSaviorTrial.exe.config" Source="LittleSaviorTrial\LittleSaviorTrial.exe.config" />
          </Component>
        </Directory>
      </Directory>
      <Directory Id="ProgramMenuFolder">
        <Directory Id="ProgramMenuDir" Name="リトルセイバー 体験版">
          <Component Id="ProgramMenuDir" Guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
            <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
            <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
          </Component>
        </Directory>
      </Directory>
    </Directory>
  </Fragment>
  <Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
    </ComponentGroup>
  </Fragment>
</Wix>

Bina dan jalankan pengesahan

Buat konfigurasi penyelesaian "Lepaskan" dalam Visual Studio.

image

Mula membina daripada Bina Penyelesaian.

image

Apabila bangunan berjaya, fail msi dijana dalam folder "bin\Keluaran".

image

Jika anda cuba menjalankannya, pemasar akan bermula.

image

Apabila pemasangan selesai, pintasan akan dicipta dalam menu Mula.

image

Fail diletakkan dalam folder Fail Atur Cara (x86).

image

Aplikasi ini juga muncul dalam "Program dan Fungsi".

image

Jalankan aplikasi dan pastikan ia berfungsi dengan betul.

image

Ringkasan

Di sini kami telah menerangkan langkah-langkah untuk mencipta pemasang MSI menggunakan Visual Studio dan WiX. Saya ingin menerangkan tetapan terperinci dalam artikel yang berasingan.