Wix3で最小構成のインストーラーを作成する - Wixを利用して何もしないインストーラーを作成する
Wix3で最小構成のインストーラーを作成する手順を紹介します。
事前準備
WiX Toolset v3のインストール
WiX Toolset v3をインストールします。インストール手順の詳細は
こちらの記事を参照してください。
WiX Toolset Visual Studio 2017 Extension のインストール
WiX Toolset Visual Studio 2017 Extension をインストールします。インストール手順の詳細は
こちらの記事を参照してください。
手順
Visual Studio 2017を起動します。
[ファイル]メニューの[新規作成]の[プロジェクト]の項目をクリックします。
[新しいプロジェクト]ダイアログが表示されます。左側のツリービューで[WiX Toolset]のノード内の[v3]ノードをクリックして選択します。下図の画面が表示されます。右側の項目一覧から、[Setup Project]をクリックして選択します。[名前]欄にプロジェクトの名称を入力します。今回はデフォルトのままとしました。設定ができたら[OK]ボタンをクリックします。
右側のソリューションエクスプローラから"Product.wxs"ファイルを選択し開きます。
Product.wxs
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="ad714548-35da-4122-b92e-f4cff276ffc7">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="SetupProject1" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="SetupProject1" />
</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>
<Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="ad714548-35da-4122-b92e-f4cff276ffc7">
のManufacturer の値が空欄だと、ビルドが通らないため、Manufacturerに値を設定します。
変更後
<Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0" Manufacturer="iPentec" UpgradeCode="ad714548-35da-4122-b92e-f4cff276ffc7">
プロジェクトをビルドします。[ビルド]メニューの[ソリューションのビルド]をクリックします。
ビルドが完了します。ワーニングが1つ表示されます。
"ICE71: The Media table has no entries."のワーニングが表示されます。インストールされるファイルが1つもないためだと考えられます。
ソリューションファイルのあるディレクトリをエクスプローラで開きます。
プロジェクトファイル名のディレクトリ内の"bin"ディレクトリ内の"debug"ディレクトリを開きます。
ビルドされた、msiファイルが配置されています。
msiファイルを実行します。下図のダイアログが表示され、その後ダイアログが閉じられるだけの動作になります。
[プログラムのアンインストールまたは変更]の画面にも追加されません。
Wixを利用して何もしないインストーラーが作成できました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用