ใช้ WiX เพื่อสร้างตัวติดตั้ง Windows "MSI" ส่วนที่ 2

วันที่สร้างเพจ :

เริ่มต้นใช้งาน

ครั้งสุดท้ายที่ฉันเตรียมไฟล์ที่จําเป็นและตั้งค่าโครงการ คราวนี้คุณจะแก้ไข Prot.wxs เพื่อตั้งค่าการตั้งค่าต่างๆ สําหรับโปรแกรมติดตั้ง

แก้ไขการตั้งค่าการติดตั้ง (Product.wxs)

เนื้อหาของไฟล์ .wxs ผลิตภัณฑ์อธิบายในรูปแบบ XML มีพารามิเตอร์จํานวนมาก แต่ก่อนอื่นเราจะทําการตั้งค่าน้อยที่สุดเพื่อให้แน่ใจว่าโปรแกรมติดตั้งสามารถสร้างได้ หากคุณต้องการทําการตั้งค่ารายละเอียดเพิ่มเติมโปรดไปที่บทความอื่น ๆ หรือเว็บไซต์อย่างเป็นทางการ

เมื่อสร้างโครงการ รหัสจะเป็นดังนี้:

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

ต่อไปนี้เป็นตําแหน่งที่จําเป็นต้องเปลี่ยน เพิ่มแท็กและคุณสมบัติที่ไม่มีอยู่

Wix/Product/@Id

ตั้งค่า GUID ที่ระบุแอปพลิเคชัน

มีเครื่องมือมากมายในการสร้าง GUID แต่ใช้เครื่องมือที่มาพร้อมกับ Visual Studio ได้อย่างรวดเร็ว เลือก "เครื่องมือ" และ "สร้าง GUID" จากเมนู

image

รับรหัส 36 หลักที่มีอักขระต่อเนื่อง และตั้งค่าเป็น "Wix/prod/ @Id"

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

Wix/Product/@Name

นี่คือชื่อแอปพลิเคชันที่แสดงในส่วนต่างๆ ของหน้าจอการติดตั้ง นอกจากนี้ยังเป็นชื่อที่แสดงในรายการเพิ่มหรือลบโปรแกรม

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

image

image

Wix/Product/@Manufacturer

ป้อนชื่อของผู้ผลิต มันจะปรากฏในผู้เผยแพร่ของผู้เขียนโปรแกรมติดตั้งและรายการโปรแกรม

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

image

image

Wix/Product/UIRef/@Id

ป้อนรหัสของตัวช่วยสร้างการติดตั้งที่ระบุหน้าจอที่แสดง เวลานี้ผมระบุ"WixUI_Minimal"เพราะมันเป็นการกําหนดค่าขั้นต่ําที่แสดงและติดตั้งใบอนุญาตเท่านั้น

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

ผมคิดว่าเว็บไซต์ต่อไปนี้จะช่วยให้คุณระบุสิ่งที่

ใช้ชุดกล่องโต้ตอบ WixUI

Wix/Product/WixVariable/*

ระบุไฟล์ที่จะใช้ใน UI ของตัวช่วยสร้าง การกําหนดค่าขั้นต่ําใช้สามไฟล์: ค่าของ Id ได้รับการแก้ไขและระบุชื่อไฟล์สําหรับค่า

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

ติดตั้งไอคอนแอปพลิเคชัน

ใช้สําหรับไอคอนแอปพลิเคชัน เช่น "เพิ่มหรือลบโปรแกรม"

ใน "ไฟล์ต้นฉบับ" ขององค์ประกอบไอคอนให้ระบุไฟล์ ico ที่สัมพันธ์กับเส้นทางของโฟลเดอร์โครงการ

รหัสคุณสมบัติ="ARPPRODUCTICON" เป็นคํานิยามความสัมพันธ์ของไอคอน

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

Wix/Defrag (โฟลเดอร์การกําหนดค่า)

ตั้งค่าการกําหนดค่าโฟลเดอร์ที่จะติดตั้ง ในขั้นต้นคุณจะวางไฟล์ แต่ก่อนอื่นให้สร้างโฟลเดอร์เท่านั้น

ค่าชื่อที่ตั้งค่าไว้ในเมนูโปรแกรม Id=เป็นชื่อของโฟลเดอร์ที่วางไว้ในทางลัดเมนูเริ่ม กรุณาตั้งค่า Guid

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

เพิ่มไฟล์การติดตั้ง

คุณสามารถเพิ่มไปยังไฟล์ Prov.wxs ด้วยตนเองได้ เนื่องจากไฟล์ต้องการ GUID จึงเป็นเรื่องยากมากเมื่อจํานวนไฟล์เพิ่มขึ้น ดังนั้นเพิ่มไฟล์โดยใช้ WixEdit

เริ่ม "WixEdit"

image

เปิดไฟล์ .wxs ผลิตภัณฑ์ของคุณ

image

image

เลือกไฟล์จากไอคอนด้านซ้าย ลบโฟลเดอร์ภายใต้โฟลเดอร์ไฟล์โปรแกรม

image

คลิกขวาที่โฟลเดอร์โฟลเดอร์ไฟล์โปรแกรม แล้วเลือก นําเข้าโฟลเดอร์

image

เลือกโฟลเดอร์ที่คุณต้องการติดตั้งไฟล์

image

ชุดของไฟล์จะถูกเพิ่มลงในต้นไม้

image

เมื่อต้องการเชื่อมโยงกับพารามิเตอร์อื่น ให้เลือกโฟลเดอร์ที่เพิ่ม และตั้งค่า "ID" เป็น INSTALLFOLDER

image

สร้างทางลัดไปยังเมนูเริ่ม เลือก ใหม่ และ สั้น จากเมนูคลิกขวาของไฟล์ exse

image

หลังจากเพิ่ม Shortcut แล้ว ให้เลือกแล้วคลิกขวาที่ช่องว่างเพื่อเพิ่มคุณสมบัติ

image

เพิ่มพารามิเตอร์ต่อไปนี้: (เปลี่ยนชื่อที่ไม่ซ้ํากันตามโปรแกรม)

คุณสมบัติ
ค่า
Id LITTLESAVIORTRIAL. EXE_shortcut
Name รุ่นทดลองของดาบเล็ก ๆ น้อย ๆ
Directory ProgramMenuDir
WorkingDirectory INSTALLDIR
Icon LITTLESAVIOR. ICO
IconIndex 0
Advertise yes

image

จากนั้นเลือกแท็บคุณลักษณะคลิกขวาที่คุณลักษณะของผลิตภัณฑ์แล้วเลือกส่วนประกอบเพื่อเพิ่ม

image

เลือกทั้งหมด

image

เพิ่มแล้ว

image

บันทึก

image

ผลิตภัณฑ์.wxs ควรมีลักษณะดังนี้:

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

สร้างและเรียกใช้การตรวจสอบ

ใน Visual Studio ให้ตั้งค่าการกําหนดค่าโซลูชันเป็น เผยแพร่

image

เริ่มต้นด้วยการสร้างโซลูชัน

image

เมื่อสร้างเสร็จเรียบร้อยแล้ว ไฟล์ msi จะถูกสร้างขึ้นในโฟลเดอร์การประกาศbin_

image

เมื่อเรียกใช้โปรแกรมติดตั้ง โปรแกรมติดตั้งจะเริ่มต้น

image

เมื่อการติดตั้งเสร็จสมบูรณ์ทางลัดจะถูกสร้างขึ้นในเมนู Start

image

แฟ้มจะถูกวางไว้ในโฟลเดอร์ แฟ้มโปรแกรม (x86)"

image

แอปพลิเคชันยังปรากฏในโปรแกรมและคุณลักษณะ

image

เรียกใช้โปรแกรมประยุกต์เพื่อให้แน่ใจว่าทํางานอย่างถูกต้อง

image

สรุป

ที่นี่เราอธิบายขั้นตอนในการสร้างโปรแกรมติดตั้ง MSI โดยใช้ Visual Studio และ WiX ฉันต้องการหารือเกี่ยวกับการตั้งค่ารายละเอียดในบทความอื่น