Sử dụng WiX để tạo trình cài đặt Windows "MSI" Phần 2

Ngày tạo trang :

Bắt đầu

Lần cuối cùng, tôi đã chuẩn bị các tài liệu cần thiết và thiết lập dự án. Lần này, bạn sẽ chỉnh sửa Sản phẩm.wxs để thiết lập các cài đặt khác nhau của trình cài đặt.

Chỉnh sửa cài đặt cài đặt (Product.wxs)

Nội dung của tệp sản phẩm.wxs được mô tả ở định dạng XML. Có rất nhiều tham số, nhưng trước tiên, chúng tôi sẽ thực hiện các thiết lập tối thiểu để đảm bảo rằng trình cài đặt có thể được tạo ra. Nếu bạn muốn thiết lập chi tiết hơn, vui lòng truy cập các bài viết khác hoặc trang web chính thức.

Khi bạn tạo một dự án, mã trông như thế này:

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

Dưới đây là nơi bạn cần thay đổi. Thêm thẻ và thuộc tính không tồn tại.

Wix/Product/@Id

Thiết lập GUID xác định ứng dụng.

Có rất nhiều công cụ để tạo GUID, nhưng rất nhanh bằng cách sử dụng các công cụ đi kèm với Vision Studio. Chọn Công cụ và Tạo GUID từ menu.

image

Lấy mã 36 chữ số có dấu gạch nối và đặt nó thành Wix/Sản phẩm/@Id.

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

Wix/Product/@Name

Đây là tên ứng dụng được hiển thị trong các phần khác nhau của màn hình cài đặt. Nó cũng là tên được hiển thị trong danh sách Thêm hoặc Xóa chương trình.

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

image

image

Wix/Product/@Manufacturer

Nhập tên của nhà sản xuất. Nó sẽ xuất hiện trong tác giả cài đặt và nhà xuất bản danh sách chương trình.

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

image

image

Wix/Product/UIRef/@Id

Nhập ID của màn hình hiển thị trình hướng dẫn cài đặt danh tính. Lần này, tôi chỉ định "WixUI_Minimal" vì nó là cấu hình tối thiểu chỉ hiển thị và cài đặt giấy phép.

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

Tôi nghĩ rằng các trang web sau đây sẽ giúp bạn chỉ định những gì.

Sử dụng bộ hộp thoại WixUI

Wix/Product/WixVariable/*

Chỉ định các tệp bạn muốn sử dụng trong giao diện người dùng thuật sĩ. Cấu hình tối thiểu sử dụng ba tệp: Giá trị của Id được cố định và tên tệp được chỉ định cho giá trị.

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

Cài đặt biểu tượng ứng dụng

Được sử dụng cho các biểu tượng ứng dụng, chẳng hạn như Thêm hoặc xóa chương trình.

Trong Tệp Nguồn của phần tử biểu tượng, chỉ định tệp ico liên quan đến đường dẫn đến thư mục dự án.

Thuộc tính Id="ARPPRODUCTICON" là định nghĩa liên kết của biểu tượng.

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

Wix/Phân mảnh (thư mục cấu hình)

Đặt cấu hình thư mục bạn muốn cài đặt. Ban đầu, bạn sẽ đặt các tập tin, nhưng trước tiên chỉ tạo ra một thư mục.

Giá trị Tên được đặt trong Menu Chương trình Id=là tên của thư mục được đặt trong lối tắt menu Bắt đầu. Vui lòng thiết lập 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>

Thêm tệp cài đặt

Bạn có thể thêm nó theo cách thủ công vào tệp sản phẩm.wxs. Bởi vì các tập tin yêu cầu GUID, điều này là rất khó khăn khi số lượng các tập tin tăng lên. Vì vậy, sử dụng WixEdit để thêm các tập tin.

Khởi chạy "WixEdit".

image

Mở tệp sản phẩm.wxs của bạn.

image

image

Chọn Tệp từ biểu tượng bên trái. Loại bỏ các thư mục bên dưới Thư mục Tệp Chương trình.

image

Nhấp chuột phải vào thư mục Thư mục Tệp Chương trình, sau đó chọn Nhập thư mục.

image

Chọn thư mục nơi tệp bạn muốn cài đặt.

image

Một loạt các tập tin được thêm vào cây.

image

Để liên kết với các tham số khác, hãy chọn thư mục đã thêm và đặt lại ID thành INSTALLFOLDER.

image

Tạo lối tắt đến menu Bắt đầu. Chọn "Mới" và "Ngắn" từ menu nhấp chuột phải của tệp exe.

image

Sau khi bạn thêm Shortcut, chọn nó, sau đó nhấp chuột phải vào khoảng trắng để thêm thuộc tính.

image

Thêm các tham số sau: (Vui lòng đổi tên tên duy nhất theo chương trình.)

thuộc tính
Giá trị
Id LITTLESAVIORTRIAL. EXE_shortcut
Name Phiên bản dùng thử của thanh kiếm nhỏ
Directory ProgramMenuDir
WorkingDirectory INSTALLDIR
Icon LITTLESAVIOR. ICO
IconIndex 0
Advertise yes

image

Sau đó, chọn tab Tính năng, nhấp chuột phải vào Tính năng sản phẩm, sau đó chọn Chọn thành phần để thêm.

image

Chọn tất cả.

image

Đã được thêm vào.

image

Lưu.

image

Sản phẩm.wxs nên trông như thế này:

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

Xây dựng và chạy kiểm tra

Trong Vision Studio, đặt cấu hình giải pháp thành Xuất bản.

image

Bắt đầu với một giải pháp xây dựng.

image

Sau khi xây dựng thành công, các tập tin msi được tạo ra trong thư mục phát hành bin_.

image

Khi bạn chạy trình cài đặt, trình cài đặt sẽ khởi động.

image

Khi quá trình cài đặt hoàn tất, lối tắt sẽ được tạo trong menu Bắt đầu.

image

Các tập tin được đặt trong thư mục Chương trình Tập Tin (x86).

image

Ứng dụng cũng được hiển thị trong Chương trình và Tính năng.

image

Chạy ứng dụng để đảm bảo nó hoạt động bình thường.

image

Tóm tắt

Ở đây chúng tôi mô tả các bước để tạo trình cài đặt MSI bằng cách sử dụng Vision Studio và WiX. Tôi muốn thảo luận về các thiết lập chi tiết trong một bài viết khác.