Wix菜单快捷方式创建

时间:2014-06-23 07:58:20

标签: wix windows-installer wix3.8

我看到在Wix(3.8。)中创建开始菜单中的快捷方式的两种不同方式:

1)

<Directory Id="ProgramMenuFolder" Name="Programs">
  <Directory Id="CompanyMenuFolder" Name="Company">
    <Component Id="MenuFolderComponent" Guid="*">
      <RegistryValue Root="HKCU" Key="Software\Company\Product" 
                     Name="MenuFolderComponent" Type="integer" 
                     Value="1" KeyPath="yes"/>
     </Component>
   </Directory>
 </Directory>

<!-- [...] -->

<Component Id='ManualComponent' Guid='*'>
  <File Id='Manual' Name="Product.pdf" DiskId='1' 
        Source="Product.pdf" KeyPath="yes" >
    <Shortcut Id="ManualStartmenuShortcut" 
              Directory="CompanyMenuFolder" Name="Product Manual"  />
  </File>
</Component>

2)

  <Directory Id="ProgramMenuFolder" Name="Programs">
    <Directory Id="CompanyMenuFolder" Name="Company">
      <Component Id="MenuFolderComponent" Guid="*">
        <Shortcut Id="StartmenuShortcut" Directory="CompanyMenuFolder"
                      Name="Product" WorkingDirectory='INSTALLDIR' 
                      Icon="Product.exe" IconIndex="0" 
                      Target="[#ProductExecutable]" />
          <RemoveFolder Id='CompanyMenuFolder' On='uninstall' />
          <RegistryValue Root="HKCU" Key="Software\Company\Product"
                         Name="MenuFolderComponent" Type="integer" Value="1"
                         KeyPath="yes"/>
      </Component>
    </Directory>
  </Directory>

这些方法中的任何一种都是首选,如果是,为什么?

谢谢:)

1 个答案:

答案 0 :(得分:0)

快捷方式可以是“广告” - 指向产品中包含的组件,或“未公布” - 指向特定目标路径({{ 3}})。

选项2)正在将未公布的快捷方式的目标字段设置为Target =“[#ProductExecutable]” - 这是一个属性标识符,似乎指向此项目中的项目主可执行文件案件。它也可以指向文件夹和URL Shortcut element documentation

选项1)还会创建一个未公布的快捷方式,因为广告属性默认为no,但是在这里您省略了Target字段,因此默认为其父组件的密钥文件。

本质上,灵活性允许考虑创建不同类型的快捷方式,并允许广告和非广告快捷方式的概念。