@ledsun blog

Hのキーがhellで、Sのキーがslaveだ、と彼は思った。そしてYのキーがyouだ。

Shortcut要素はFile要素の中に入れなくてもよい

WiX チュートリアル 日本語訳 Lesson 1 始めよう / 3. 使用に供する の SampleFirst.wxs を例にします。

<Component Id='MainExecutable' Guid='A3AAD3C9-C833-4D1B-939E-0D1C47A31D95'>
  <File Id='HogeEXE'
        Name='HogeAppl10.exe' DiskId='1'
        Source='HogeAppl10.exe' KeyPath='yes'>
    <Shortcut Id="startmenuHoge10" Directory="ProgramMenuDir"
              Name="ほげ 1.0" WorkingDirectory='INSTALLDIR'
              Icon="Hoge10.exe" IconIndex="0" Advertise="yes" />
    <Shortcut Id="desktopHoge10" Directory="DesktopFolder"
              Name="ほげ 1.0" WorkingDirectory='INSTALLDIR'
              Icon="Hoge10.exe" IconIndex="0" Advertise="yes" />
  </File>
</Component>

<Component Id='MainExecutable' Guid='A3AAD3C9-C833-4D1B-939E-0D1C47A31D95'>
  <File Id='HogeEXE'
        Name='HogeAppl10.exe' DiskId='1'
        Source='HogeAppl10.exe' KeyPath='yes' />
  <Shortcut Id="startmenuHoge10" Directory="ProgramMenuDir"
            Name="ほげ 1.0" WorkingDirectory='INSTALLDIR'
            Icon="Hoge10.exe" IconIndex="0" Advertise="yes" />
  <Shortcut Id="desktopHoge10" Directory="DesktopFolder"
            Name="ほげ 1.0" WorkingDirectory='INSTALLDIR'
            Icon="Hoge10.exe" IconIndex="0" Advertise="yes" />
</Component>

と書いてもよいです。 インデントが浅くなって読みやすくなります。

WiXXMLファイルで定義するので親子関係が重要におもえますが、生成されるmsiファイルはテーブル構造でレコードを持ちます。 親子関係があまり重要でないこともあります。