为所有用户设置程序菜单目录快捷方式

时间:2014-09-26 10:47:07

标签: wix wix3.6

我有一个WiX安装程序。此安装程序需要为要使用该应用程序的所有用户创建一个开始菜单快捷方式,并且每个记录该计算机的用户都必须看到此快捷方式。

这是我的代码:

<Product Id="$(var.GUID_Product)"
     Name="Name"
     Language="!(loc.Language)"
     Version="!(bind.FileVersion.$(var.productFamily)$(var.productSummary))"
     Manufacturer="Manufacturer"
     UpgradeCode="1234-12324" >

<Package 
  Description="Product description"
  Manufacturer="Product manufacturer"
  InstallerVersion="200" Compressed="yes" />

  <Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="MainAppInstallFolder" Name="MainApp">

      <!-- Main content directory -->
      <Directory Id="MainContentFolder"  Name="MainContent" />
    </Directory>

    <Directory Id="ProgramMenuFolder">
      <Directory Id="ProgramMenuDemoShortcutDir" Name="$(var.productFamily) $(var.productType)" />
    </Directory>

  </Directory>
</Directory>

<DirectoryRef Id="ProgramMenuDemoShortcutDir">
  <Component Id="CMP_ProgramMenuShortcutDir" Guid="bla">
    <Shortcut Id="DemoShortcutStartMenu"
              Name="MainApp shortcut"
              WorkingDirectory="INSTALLLOCATION"
              Target="[INSTALLLOCATION]MainApp.exe" />
    <RemoveFolder Id="ProgramMenuDemoShortcutDir" On="uninstall" />
    <RegistryValue Root="HKCU" Key="$(var.productKeyPath)" Type="integer" Value="1" KeyPath="yes" />
  </Component>
</DirectoryRef>

此代码正确安装程序菜单快捷方式。但仅适用于当前安装。如果我使用其他凭据登录我的计算机,则无法在Windows开始菜单中看到该快捷方式...

为什么会这样?

注意:我正在使用WiX 3.8。

1 个答案:

答案 0 :(得分:0)

它可能是每用户安装,因此您需要在Package元素中将InstallScope设置为perMachine。