前回ご紹介したコードは、テキストファイルをターゲットコンピュータにインストールし、ショートカットを使って当該ファイルを開くものでした。
しかし、通常このように単純なインストールプログラムはありません。開発者が提供するソフトがユーザコンピュータで動くようにするには、開発ソフトや取扱い説明書や、当該ソフトを支援するさまざまなライブラリーをインストールしなければいけません。
自分で作成したソフトやドキュメントは当然わかっていますが、どれが必要なライブラリーかも的確に知らなければいけません。
VSを使っている場合は「参照設定」画面でライブラリーを確認できます。ここに列挙されるライブラリーをComponent-File要素として追加すればいいと思います。
ただし、Nick RamirezはWiX Tool の heatを使うように推奨しています。試しにHeatを使ってみると沢山のRegistry登録の指示が出てきます。GACのRegistry登録は慎重でなければいけません。私自身、もっとHeatの研究をしなければいけません。
ライブラリー・GACはターゲットコンピュータの所定の場所にインストールしなければいけませんが、対象ディレクトリーを[MyProgramDir]としておけば、WIndows Installerが正しくインストールしてくれるようです。
さて、先の例ではパッケージのインストールが始まると、ライセンスの確認やプロダクトキーの入力画面もなく、一気にインストールが実行されます。
ユーザインターフェースはどのように実現すればいいのか。WiXには、標準の5種類のユーザインターフェースが用意されています。名前は以下の通りで、下になるほどにシンプルな機能になります。
WiXUI_Mondo すべてのインターフェース機能を備えています
WiXUI_FeaTureTree セットアップタイプに画面がありません
WiXUI_InstallDir
WiXUI_Minimal
WiXUI_Advanced
使い方はいたって簡単です。
次のように、Product 要素の直下に標準UIへの参照要素を追加するだけです。
<UIRef Id=”WixUI_Mondo” />
ただし、お約束で下の文も追加します。
<UIRef Id=”WixUI_ErrorProgressText” />
<UI />
以下に[WiX チュウトリアル(日本語版)]のサンプルコードを転載します。
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Name="ほげ 1.0" Id="655078FA-567E-4954-9A79-C6612F79FD07"
UpgradeCode="B8F470F7-E70B-43CD-A1C2-2FDC274D032E" Language="1041" Codepage="932"
Version="1.0.0" Manufacturer="ぴよソフト">
<Package Id="*" Keywords="インストーラ" Description="ぴよソフト's ほげ 1.0 インストーラ"
Comments="ほげはぴよソフトの登録商標です。" Manufacturer="ぴよソフト" InstallerVersion="100"
Languages="1041" Compressed="yes" SummaryCodepage="932" />
<Media Id="1" Cabinet="Sample.cab" EmbedCab="yes" DiskPrompt="CD-ROM 1枚目" />
<Property Id="DiskPrompt" Value="ぴよソフト's ほげ 1.0 インストーラ [1]" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="Piyo" Name="Piyo">
<Directory Id="INSTALLDIR" Name="Hoge 1.0">
<Component Id="MainExecutable" Guid="DDFC76D3-2E52-4EB2-B4EC-2011E6D0B0F9">
<File Id="HogeEXE" Name="HogeAppl10.exe" DiskId="1" Source="HogeAppl10.exe" KeyPath="yes">
<Shortcut Id="startmenuHoge10" Directory="ProgramMenuDir" Name="ほげ 1.0" WorkingDirectory="INSTALLDIR" Icon="Hoge10.exe"
IconIndex="0" Advertise="yes" />
<Shortcut Id="desktopHoge10" Directory="DesktopFolder" Name="ほげ 1.0" WorkingDirectory="INSTALLDIR" Icon="Hoge10.exe"
IconIndex="0" Advertise="yes" />
</File>
</Component>
<Component Id="HelperLibrary" Guid="A48F72E2-9ECA-48A0-8CF9-777310CC42D8">
<File Id="HelperDLL" Name="HogeHelper.dll" DiskId="1" Source="HogeHelper.dll" KeyPath="yes" />
</Component>
<Component Id="Manual" Guid="CFB432C9-A032-473A-91B2-03C3CFF2D1D2">
<File Id="Manual" Name="Manual.pdf" DiskId="1" Source="Manual.pdf" KeyPath="yes">
<Shortcut Id="startmenuManual" Directory="ProgramMenuDir" Name="取扱説明書" Advertise="yes" />
</File>
</Component>
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="ProgramMenuDir" Name="ほげ 1.0">
<Component Id="ProgramMenuDir" Guid="DD544A7D-1A22-46F9-B491-587B7A0A9D87">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software[Manufacturer][ProductName]"
Type="string" Value="" KeyPath="yes" />
</Component>
</Directory>
</Directory>
<Directory Id="DesktopFolder" Name="Desktop" />
</Directory>
<Feature Id="Complete" Title="ほげ 1.0" Description="完全パッケージ。"
Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR">
<Feature Id="MainProgram" Title="プログラム" Description="メインの実行ファイル。" Level="1">
<ComponentRef Id="MainExecutable" />
<ComponentRef Id="HelperLibrary" />
<ComponentRef Id="ProgramMenuDir" />
</Feature>
<Feature Id="Documentation" Title="説明書" Description="取扱説明書。" Level="1000">
<ComponentRef Id="Manual" />
</Feature>
</Feature>
<UIRef Id="WixUI_Mondo" />
<UIRef Id="WixUI_ErrorProgressText" />
<Icon Id="Hoge10.exe" SourceFile="HogeAppl10.exe" />
<UI />
</Product>
</Wix>
これだけで「ようこそ」画面や「使用許諾契約書」画面が表示されますが、
自分用の「使用許諾契約書」を表示したり、
自分用のプロダクトキーの検証アルゴリズムを追加するには、
少し、修正が必要になります。