ウェルカムダイアログ、進行状況ダイアログ、インストール完了ダイアログを持つインストーラーの作成

WiXを利用して、ウェルカムダイアログ、進行状況ダイアログ、インストール完了ダイアログを持つインストーラーを作成します。

事前準備

こちらの記事を参照して、WiXインストーラープロジェクトを作成し、ファイルを1つインストールするインストーラーを作成します。

手順

Visual Studioを起動します。

WixUIExtension.dll 参照の追加

ソリューションエクスプローラーのウィンドウで、WiXのプロジェクトのノードを開きます。下図のノードが表示されます。


[References]ノードをクリックして選択し、右クリックでポップアップメニューを表示します。ポップアップメニューの[参照の追加]メニューをクリックします。


下図の[Add Reference]ダイアログが表示されます。


今回参照に追加する"WixUIExtension.dll"は"C:\Program Files (x86)\WiX Toolset v(WiXのバージョン番号)\bin" ディレクトリに配置されています。


"C:\Program Files (x86)\WiX Toolset v(WiXのバージョン番号)\bin" ディレクトリを表示します。今回の場合は "C:\Program Files (x86)\WiX Toolset v3.11\bin" ディレクトリとなります。ファイル一覧から、"WixUIExtension.dll"をクリックして選択し、[追加]ボタンをクリックします。[選択されたプロジェクトとコンポーネント]の欄に"WixUIExtension.dll"が追加されます。[OK]ボタンをクリックしてダイアログを閉じます。


ソリューション エクスプローラーの"References"ノードに"WixUIExtension"のノードが追加されます。

Product.wxs の更新

Product.wxs ファイルを変更します。
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
 <Product Id="{B8D21526-447C-49F6-9868-24EFCDB02C25}" Name="MinimalUIInstaller" Language="1033" Version="1.0.0.0" Manufacturer="iPentec" UpgradeCode="67543823-e85b-4066-8015-77979bb11eea">
  <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

  <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
  <MediaTemplate EmbedCab="yes" />
  <UIRef Id="WixUI_Minimal" />

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

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

  <Fragment>
    <DirectoryRef Id="INSTALLFOLDER">
      <Component Id="Component1" Guid="{BE0399F6-8287-44B9-8252-8017A4935BBB}" DiskId="1">
        <File Id="File01" Name="Document.txt" Source="Document.txt"/>
      </Component>
    </DirectoryRef>
  </Fragment>
  
 <Fragment>
  <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
      <ComponentRef Id="Component1" />
  </ComponentGroup>
 </Fragment>
</Wix>

解説

変更点は
 <UIRef Id="WixUI_Minimal" />
の追加です。利用するUIのタイプを指定しています。

ビルド

プロジェクトをビルドします。今回はEmbedCab="yes"が指定されていますので、インストーラーはmsiファイル1ファイルになります。出力ディレクトリにビルド結果のmsiファイルが配置されています。


msiファイルを実行します。下図のウェルカムダイアログが表示されます。


[I accept the terms in the License Agreement] のチェックボックスをチェックします。ダイアログ下部の[Install]ボタンがクリックできる状態になります。[Install]ボタンをクリックします。


下図のウィンドウが表示され、インストールが始まります。


インストールが完了すると、下図のダイアログが表示されます。[Finish]ボタンをクリックしてインストーラーを終了します。


著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2017-03-13
iPentec all rights reserverd.