ใช้ 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" จากเมนู
รับรหัส 36 หลักที่มีอักขระต่อเนื่อง และตั้งค่าเป็น "Wix/prod/ @Id"
<Wix>
<Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />
Wix/Product/@Name
นี่คือชื่อแอปพลิเคชันที่แสดงในส่วนต่างๆ ของหน้าจอการติดตั้ง นอกจากนี้ยังเป็นชื่อที่แสดงในรายการเพิ่มหรือลบโปรแกรม
<Wix>
<Product Name="リトルセイバー 体験版" />
Wix/Product/@Manufacturer
ป้อนชื่อของผู้ผลิต มันจะปรากฏในผู้เผยแพร่ของผู้เขียนโปรแกรมติดตั้งและรายการโปรแกรม
<Wix>
<Product Manufacturer="ソーサリーフォース">
Wix/Product/UIRef/@Id
ป้อนรหัสของตัวช่วยสร้างการติดตั้งที่ระบุหน้าจอที่แสดง เวลานี้ผมระบุ"WixUI_Minimal"เพราะมันเป็นการกําหนดค่าขั้นต่ําที่แสดงและติดตั้งใบอนุญาตเท่านั้น
<Wix>
<Product>
<UIRef Id="WixUI_Minimal" />
ผมคิดว่าเว็บไซต์ต่อไปนี้จะช่วยให้คุณระบุสิ่งที่
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"
เปิดไฟล์ .wxs ผลิตภัณฑ์ของคุณ
เลือกไฟล์จากไอคอนด้านซ้าย ลบโฟลเดอร์ภายใต้โฟลเดอร์ไฟล์โปรแกรม
คลิกขวาที่โฟลเดอร์โฟลเดอร์ไฟล์โปรแกรม แล้วเลือก นําเข้าโฟลเดอร์
เลือกโฟลเดอร์ที่คุณต้องการติดตั้งไฟล์
ชุดของไฟล์จะถูกเพิ่มลงในต้นไม้
เมื่อต้องการเชื่อมโยงกับพารามิเตอร์อื่น ให้เลือกโฟลเดอร์ที่เพิ่ม และตั้งค่า "ID" เป็น INSTALLFOLDER
สร้างทางลัดไปยังเมนูเริ่ม เลือก ใหม่ และ สั้น จากเมนูคลิกขวาของไฟล์ exse
หลังจากเพิ่ม Shortcut แล้ว ให้เลือกแล้วคลิกขวาที่ช่องว่างเพื่อเพิ่มคุณสมบัติ
เพิ่มพารามิเตอร์ต่อไปนี้: (เปลี่ยนชื่อที่ไม่ซ้ํากันตามโปรแกรม)
คุณสมบัติค่า | |
---|---|
Id | LITTLESAVIORTRIAL. EXE_shortcut |
Name | รุ่นทดลองของดาบเล็ก ๆ น้อย ๆ |
Directory | ProgramMenuDir |
WorkingDirectory | INSTALLDIR |
Icon | LITTLESAVIOR. ICO |
IconIndex | 0 |
Advertise | yes |
จากนั้นเลือกแท็บคุณลักษณะคลิกขวาที่คุณลักษณะของผลิตภัณฑ์แล้วเลือกส่วนประกอบเพื่อเพิ่ม
เลือกทั้งหมด
เพิ่มแล้ว
บันทึก
ผลิตภัณฑ์.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 ให้ตั้งค่าการกําหนดค่าโซลูชันเป็น เผยแพร่
เริ่มต้นด้วยการสร้างโซลูชัน
เมื่อสร้างเสร็จเรียบร้อยแล้ว ไฟล์ msi จะถูกสร้างขึ้นในโฟลเดอร์การประกาศbin_
เมื่อเรียกใช้โปรแกรมติดตั้ง โปรแกรมติดตั้งจะเริ่มต้น
เมื่อการติดตั้งเสร็จสมบูรณ์ทางลัดจะถูกสร้างขึ้นในเมนู Start
แฟ้มจะถูกวางไว้ในโฟลเดอร์ แฟ้มโปรแกรม (x86)"
แอปพลิเคชันยังปรากฏในโปรแกรมและคุณลักษณะ
เรียกใช้โปรแกรมประยุกต์เพื่อให้แน่ใจว่าทํางานอย่างถูกต้อง
สรุป
ที่นี่เราอธิบายขั้นตอนในการสร้างโปรแกรมติดตั้ง MSI โดยใช้ Visual Studio และ WiX ฉันต้องการหารือเกี่ยวกับการตั้งค่ารายละเอียดในบทความอื่น