2個のファイルをインストールするインストーラーの作成(Wix3)

icon 項目のみ表示/展開表示の切り替え

概要

32bitのプログラムであるtes21.exeとLICENSE.rtfをProgram Filesフォルダー{64bit版のWindowsの場合Program Files(x86)}にインストールするサンプルです。インストール先は任意に変更できます。コントロールパネルでアンインストールができます。あらかじめWix3(wix3.0)をインストールしておく必要があります。ファイル1個の場合との違いは名称以外では単純に<File Id=の行が1行増えているだけです。wxsソース上の841F8AF7-7A9A-470e-8008-E2223621EAD6等については世界で任意の値でなければならないのでこのインストーラをもとに配布プログラムを作る場合はguidgen.exe等で再度任意のGUID値を得なければなりません。

仕様

標準インストール先

ショートカット スタートメニューのテストメニュー内に作成

インストーラーのソース等のダウンロード

スクリーンショット

インストーラー






メニューの登録状況


サンプルプログラムの実行画面


コントロールパネルでの登録状況


アンインストール


インストーラーのもととなるデータフォルダの内容(ダウンロードしたファイルを解凍した場合)

LICENSE.rtf ←ライセンスの内容を表すリッチテキストファイル
test2.exe ←インストールされる実行ファイル
test2.wxs ←インストール手順等が書かれたwix用のソースファイル
test2.msi ←作成されたインストーラー このファイルのみ配布すれば良い
w.bat ← msiファイル作成用のバッチファイル

test2.wxs

<?xml version="1.0" encoding="UTF-8"?>

<!--  インストーラー (Visual C++ 2008
      インストールフォルダーの変更・ショートカットの登録・アンインストール情報の設定
-->

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
 
  <!--  UpgradeCode:アップグレー時に必要なcode(guidegen.exe等で作成)
        Version:インストールするアプリケーションのバージョン
        Language:1041   日本語
        CodePage:932    日本  
        Name:*.msiファイルの表題やコントロールパネルのアプリケーションの削除等に表示される名前
        Manufacturer:*.msiファイルの作成者に表示される名前
        EmbedCab:yseにすると*.msiファイルにインストールすべき全ファイルが結合される
                 noにすると*.msiファイルとCabinetで指定されるcabファイルが作成される
  -->
  
    <Product Id="*" UpgradeCode="FAF2DE44-80D8-48f0-847B-7FDF1EB44BA3" Version="1.0.0.0"
             Language="1041" Codepage="932 " Name="テスト2" Manufacturer="作成者">
        <Package InstallerVersion="300" Languages="1041" SummaryCodepage="932" Compressed="yes"/>
        <Media Id="1" Cabinet="myapplication.cab" EmbedCab="yes" />
        <Property Id="ALLUSERS" Value="1" />
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder">
<!--    Name:program filesの下のフォルダー名を指定 -->
                <Directory Id="APPLICATIONROOTDIRECTORY" Name="test2">
                </Directory>
              </Directory>
<!--    Name:スタートメニュー プログラム下のフォルダー名を指定-->
            <Directory Id="ProgramMenuFolder">
                <Directory Id="ApplicationProgramsFolder" Name="テストメニュー"/>
            </Directory>

<!--    マージモジュール  実行に必要なランタイムファイルを指定 -->

        </Directory>

      <DirectoryRef Id="APPLICATIONROOTDIRECTORY">
<!--    Guid:アンインストール用時に使われるGUID値(guidgen.exe等で作成)  -->
          <Component Id="mysoft.exe" Guid="12784251-52F9-482c-B143-6A4CA64BF502">
<!--    Source:コピー元のファイル名 ほかに必要なファイルがあれば<File Id=  />を繰り返す  -->

            <File Id="test2.exe" Source="test2.exe" KeyPath="yes" Checksum="yes"/>
            <File Id="LICENSE" Name="LICENSE.rtf" Source="LICENSE.rtf" Checksum="yes"/>

          </Component>
      </DirectoryRef>


      <DirectoryRef Id="ApplicationProgramsFolder">
<!--    Guid:アンインストール用時に使われるGUID値(guidgen.exe等で作成)  -->
<!--    Name:ショートカット名  Description:ショートカットのコメント -->
          <!--    Target:ショートカットにする元のファイル名 -->
          <Component Id="ApplicationShortcut" Guid="2C621873-FEDC-4e56-91C1-7D5C6A1365AC">
                <Shortcut Id="ApplicationStartMenuShortcut"
                Name="テスト2"
                Description="テスト"
                Target="[APPLICATIONROOTDIRECTORY]test2.exe"
                WorkingDirectory="APPLICATIONROOTDIRECTORY"/>
                <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
<!--    アンインストールに必要なレジストリ登録 makerに作者名 softnameにソフト名 -->
                 <RegistryValue Root="HKCU" Key="Software\maker\softname" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
           </Component>
        </DirectoryRef>

        <Feature Id="MainApplication" Title="Main Application" Level="1">
          <ComponentRef Id="mysoft.exe" />

          <ComponentRef Id="ApplicationShortcut" />

        </Feature>
      <!-- 変更:InstallDir UI-->
<!--   インストールフォルダーを変更できるようにする 上記のDirectory IdとValueと同じ名前でなければならない-->
      <UIRef Id="WixUI_InstallDir" />
      <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONROOTDIRECTORY" />
<!--    ライセンス条項の内容を定義  -->
      <WixVariable Id="WixUILicenseRtf" Value="LICENSE.rtf"/>
      <!-- 変更:InstallDir UI-->
    </Product>
</Wix>

w.bat

w.batを実行するとmsiファイルが作成される。

echo 32bit版
pause
set src=test2

if defined ProgramFiles(x86) goto WOW64
set pro=%ProgramFiles%
echo Windowsは32bit版です
goto end_path
:WOW64
set pro=%ProgramFiles(x86)%
echo Windowsは64bit版です
:end_path
"%pro%\Windows Installer XML v3\bin\candle" %src%.wxs
if errorlevel 1 goto end
"%pro%\Windows Installer XML v3\bin\light" -ext WixUIExtension -loc "%pro%\Windows Installer XML v3\bin\WixUI_ja-jp.wxl" %src%.wixobj
:end
set pro=
set src=
pause

前のページに戻る