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を愛用
掲載日: 2017-03-09
iPentec all rights reserverd.