WiX によるWindowsインストーラー作成

(1/1)
WiXによるWindowsインストーラー作成
これから開発するプログラムは、実行型ファイル以外に、DLLファイルや外部プログラム/ファイルが必要になることがあるので、これらのファイルを適切に配置できるように、インストーラーを作ることにした。
そこで、カスタマイズがやりやすいフリーソフト WiX(Windows Installer XML)を利用することにした。

目次

サンプル定義ファイル

WiX の導入

WiX
公式サイトから WiX Toolset build tools をダウンロード、インストールする。

使うツールは "candle.exe" と "light.exe" の2つで、コマンドラインからの起動になるため、"C:\Program Files (x86)\WiX Toolset v3.11\bin" にPATHを通しておく。

WixEdit

きわめて簡単なインストーラーであれば、WixEdit を使って作成できる。
詳しくは、「Windows上でWixおよびWixEditを使ったインストーラ作成」をご覧いただきたい。

インストーラー作成用XMLファイル

ここでは、エディタを使って WiX に読み込ませるインストーラー作成用XMLファイルを作ってゆく。
拡張子は .wxs で保存する。

解説:変数定義

   1: <?xml version="1.0" encoding="utf-8"?>
   2: <!-- WiXサンプル定義ファイル -->
   3: <!-- 参考サイト https://www.pahoo.org/e-soul/webtech/cpp01/cpp01-01-02.shtm -->
   4: <!-- 変数定義 -->
   5: <?define GUID_Product                = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ?>
   6: <?define GUID_MenuAppComponent       = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ?>
   7: <?define GUID_ApplicationComponent   = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ?>
   8: <?define GUID_EtcComponent           = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ?>
   9: 
  10: <?define GUID_Upgrade                = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ?>
  11: <?define GUID_MenuPahooComponent = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ?>
  12: 
  13: <?define ProductName = "googlenewswin" ?>
  14: <?define ProductNameJP   = "Googleニュース検索" ?>
  15: <?define ProductVersion  = "1.1" ?>
  16: <?define MinumumVersion  = "1.0" ?>
  17: <?define ProductComment  = "インターネット経由でGoogleニュース検索を行い,検索結果を一覧表示・ファイル保存する.記事タイトルをクリックすると,ブラウザを使って当該ニュースを表示する." ?>
  18: <?define SourceFolder    = "C:\SampleProgrram\cpp\googlenewswin\" ?>

XML内で何カ所か同じ文字列を記述することがあるので、これらを変数として用意しておく。
<?define 変数名 ="変数の内容" ?>
変数の説明
GUID_ProductプロダクトのGUID
GUID_MenuAppComponentアプリケーションメニューのGUID
GUID_ApplicationComponentアプリケーションコンポーネントのGUID
GUID_EtcComponentetcコンポーネントのGUID
GUID_UpgradeアップグレードGUID
GUID_MenuPahooComponentpahooメニューコンポーネントのGUID
ProductNameプロダクト名称(英数字)
ProductNameJPプロダクト名称(日本語)
ProductVersionプロダクト・バージョン(小数)
MinumumVersionアップデート可能なの最小(最古)バージョン
ProductCommentプロダクトに関する説明。
Windowsインストーラーはコンポーネントごとに GUID を要求する。GUIDは、前述の WixEdit を使って生成できる。また、「C++でGUID生成」から生成ツールをダウンロードできる。

インストールやアップデートは GUID_Upgrade を参照するので、同一プロダクトにつき、この GUID は同一にすること。
これから作るプログラムは、デフォルトでスタートメニューに pahoo.org フォルダを作成し、その配下にショートカットを配置していく。そこで、GUID_MenuPahooComponentGUID も同一にすること。
これ以外のGUIDについては、アップデートの度にあらたに生成すること。

XML中で変数を参照するときは $(var.GUID_Product) のように記述する。

解説:Productエレメント

  20: 

header