WiX Toolset – ユーザインターフェース

前回ご紹介したコードは、テキストファイルをターゲットコンピュータにインストールし、ショートカットを使って当該ファイルを開くものでした。

しかし、通常このように単純なインストールプログラムはありません。開発者が提供するソフトがユーザコンピュータで動くようにするには、開発ソフトや取扱い説明書や、当該ソフトを支援するさまざまなライブラリーをインストールしなければいけません。

自分で作成したソフトやドキュメントは当然わかっていますが、どれが必要なライブラリーかも的確に知らなければいけません。

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>

これだけで「ようこそ」画面や「使用許諾契約書」画面が表示されますが、
自分用の「使用許諾契約書」を表示したり、
自分用のプロダクトキーの検証アルゴリズムを追加するには、
少し、修正が必要になります。

error: コピーできません !!