WIX:添加快捷方式到StartMenu文件夹Windows 10

时间:2018-02-27 14:21:40

标签: wix windows-installer wix3.5

我有一个应用程序,它将安装Start Menu文件夹的快捷方式。它在Win7中完美运行。但是当我在Windows 10机器中安装应用程序时,快捷方式不会出现。我的WIX文件中的快捷方式条目如下所示。

<Component Id="cmptest" Guid="*" KeyPath="yes">

  <Shortcut Id="test.exe2" Directory="StartMenuFolder" 
            Name="test" Target="[#test.exe]" Hotkey="0" IconIndex="0" Show="normal" />

</Component>

3 个答案:

答案 0 :(得分:1)

在深入细节之前:

  • 你确定捷径真的不存在吗? Windows 10开始菜单是如此奇怪,我发现我必须经常查看两次才能找到实际存在的快捷方式。只是检查。
  • 就此而言,您确定安装在Windows 10中实际完成吗?也许它会回滚而你却没有注意到?

目录 StartMenuFolder 不会为我的测试项目编译,直到我自己将其添加为TARGETDIR下的目录:

<Directory Id="TARGETDIR" Name="SourceDir">      
  <Directory Id="StartMenuFolder" />
</Directory>

我假设您已经在此处添加了此文件夹以进行编译。您也可以尝试使用 ProgramMenuFolder 进行测试,看看是否显示了快捷方式。

您的其他WiX源在哪里?我无法确定您是否确实安装了您引用的文件:#test.exe?承载该文件的组件是否实际安装在Windows 10上?

还有一些额外的陌生感:我没有看到这么多,但是因为问题在Windows 10上显现出来,可能会读到这个答案并看看它是否响起任何铃声:Wix Uninstall Shortcut not working

基本上,一些快捷方式会在Windows 8中自动隐藏,并且可能会向上隐藏。我没有看到为什么你的快捷方式应该被隐藏的原因。

答案 1 :(得分:0)

我已经能够使用Stein Asmul建议的ProgramMenuFolder进行显示来显示快捷方式进行测试。以下是我可以正常使用的设置,但例外是我的图标没有显示。

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="INSTALLFOLDER" Name="Barcode Printer App" />
  </Directory>
  <Directory Id="ProgramMenuFolder">
    <Directory Id="BarcodePrinterAppShortcuts" Name="Barcode Printer App" />
  </Directory>
</Directory>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
  <Component Id="ProductComponent">
    <File Id="BarcodeAppExe" Source="$(var.BarcodePrinterHelperApp.TargetPath)" >
      <Shortcut Id="BarcodeAppShortcut"
                 Directory="BarcodePrinterAppShortcuts"
                 Name="Barcode Printer App"
                 WorkingDirectory="INSTALLFOLDER"
                 Advertise="yes"
                 Icon="icon.ico"
                 IconIndex="0"
                  >
      </Shortcut>
    </File>
    <RemoveFolder Id="DeleteTheBarcodeAppShortcut"
                   Directory="BarcodePrinterAppShortcuts"
                   On="uninstall" />
  </Component>
</ComponentGroup>

<Component Id="UninstallShortcut" Guid="*" Directory="BarcodePrinterAppShortcuts">
  <Shortcut Id="UninstallThisProduct"
            Name="Uninstall Barcode Printer App"
            Description="Uninstalls Barcode Printer App"
            Target="[System64Folder]msiexec.exe"
            Arguments="/x [ProductCode]" />
  <RegistryValue Root="HKCU" Key="Software\Powerserve\BarcodePrinterApp" Name="installed" Type="integer" Value="1" KeyPath="yes" />
</Component>

答案 2 :(得分:-1)

可能是许可问题。尝试以管理员身份运行安装(或以管理员身份打开命令提示符)并从那里运行安装。此外,您可能需要检查用户帐户控制设置,如果限制太严格,请降低滑块。