1

我看到在 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>

是否首选这些方法,如果是,为什么?

谢谢 :)

4

1 回答 1

0

快捷方式可以是“广告的”——指向产品中包含的组件,也可以是“非广告的”——指向特定的目标路径(快捷方式元素文档)。

选项 2)将非广告快捷方式的目标字段设置为 Target="[#ProductExecutable]" - 在这种情况下,这是一个似乎指向项目主要可执行文件的属性标识符。它也可以指向一个文件夹和一个 URL,如这里所示

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

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

于 2014-06-23T09:05:08.980 回答