アンインストール用ショートカットユースケース別64bitバイナリをインストールするWiXの構成要素¶WiXは、インストーラー構成情報をXMLで記述し、コマンドにかけてMSI形式のインストーラーを生成します。ファイル要素を持つComponent要素をComponentGroup要素で定義する場合Wix要素¶T.B.D.Package要素¶T.B.D.MajorUpdate要素¶バージョンアップを可能にします。上位のProduct要素にUpgradeCode属性とVersion属性が定義されている必要があります。MediaTemplate要素¶T.B.D.Directory要素¶インストーラーがインストールする対象ディレクトリとその下のディレクトリ構造を定義します。インストールする場合のDirectory要素は次のようになります。</Directory></Directory>トップのDirectory要素は、Id属性にTARGETDIRを指定し、Name属性にSourceDirを指定します。Filesとなります。3番目のDirectory要素は、Id属性に任意の(事前定義名ではない)文字列を指定し、実際に作成されるディレクトリ名はName属性に指定した名前となります。スタートメニュー(プログラムメニュー)にショートカット¶Windowsのスタートメニュー(プログラムメニュー)にショートカットを作成するために、ショートカットの場所をDirectory要素で指定します。例1で作成した構造に、スタートメニュー用のディレクトリ要素を追加します。</Directory>Component要素¶インストーラーがインストールするそれぞれのファイルは、すべてComponent要素で定義します。/></Component>Component要素のId属性は分かりやすい且つ識別しやすい名前を指定します。CMP_と子要素のファイル名にちなんだhelloTXTを結合した名前を指定してみました。Component要素の属性Guidで固有のGUIDを指定します。Component要素の子要素にFile要素を指定し、インストールするファイルを定義します。Source属性でインストーラー作成時に対象ファイルがあるパスを、カレントディレクトリからの相対パスまたは絶対パスで指定します。File要素のKeyPath属性を指定することで、インストーラーの「修復」インストールでファイルを再度インストールすることが可能となります。そのためには、Component要素の子要素には1つだけFile要素を指定することになります。Component要素の指定場所¶Component要素は、そのコンポーネント(ファイル等)をインストールするディレクトリに紐づけます。紐づけには3つの方法があります。Directory要素の子要素にComponent要素を指定¶ファイルをインストールするディレクトリに対応するDirectory要素の子要素にComponent要素を指定します。</Directory></Directory>この書き方は、インストールするファイルが多数ある場合、Directory要素のツリーが複雑になるため、あまり推奨されません。</Component></DirectoryRef>DirectoryRef要素のId属性には、インストールするファイルを配置するディレクトリのId属性と同じId属性を記述します。</Component></ComponentGroup>ComponentGroupのDirectory属性には、インストールするファイルを配置するディレクトリのId属性の名前を記述します。方法2のDirectoryRef要素を使う場合は、後に説明するFeature要素の子要素にComponent要素の数分だけComponentRef要素を記述しなければなりません。この方法では、Feature要素の子要素にComponentGroupRefを指定できるので、多数のComponent要素がある場合はこの方法が簡潔になります。File要素¶Source属性は必須Id属性は省略可。Id属性を省略した場合は、ファイル名がIdとして使われる。Name属性は省略可。明示的に指定するとインストール時にその名前でファイルがインストールされる。インストール時にファイル名を変更できる。KeyPath属性を省略すると、Component要素の子要素のFile要素のうち最初のものがKeyPathファイルとして扱われる。Component要素の子要素に1つだけFile要素を指定すると、すべてのファイルがKeyPathとして扱われる。Feature要素¶インストール時に、インストールする機能をユーザーが選択できるようにする場合に使用します。/></Feature>Fragment要素¶XML記述を複数のファイルに分割する場合に使用します。Shortcut要素¶インストール時にショートカットを作成する場合に使用します。典型的には、スタートメニューに追加するショートカットがあります。</Component></DirectoryRef>Feature要素の子要素にComponentRefを追加します。/>これでインストール時にスタートメニューにショートカットが追加されます。アンインストール時にショートカットが削除されないので追加記述が必要です。</DirectoryRef>RemoveFolder要素でスタートメニューの中に作成したサブフォルダをアンインストール時に削除します。RegistryValue要素は、Shortcut要素がKeyPath属性を持てないために補う要素です。