WIX: добавление ярлыка в папку StartMenu Windows 10

У меня есть приложение, которое установит ярлык в папку "Пуск". Он отлично работает в 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 ответа

Прежде чем вдаваться в подробности:

  • Вы уверены, что ярлык действительно не существует? Меню "Пуск" в 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 не работает

По сути, некоторые ярлыки автоматически скрываются в Windows 8 и, возможно, вверх. Я не вижу никакой причины, почему ваш ярлык должен быть скрыт.

Мне удалось получить ярлыки для отображения с помощью ProgramMenuFolder, предложенного Stein Åsmul для тестирования. Ниже моя настройка, которая работает, за исключением того, что мои иконки не отображаются.

<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>

Это может быть проблема разрешения. Попробуйте запустить установку от имени администратора (или откройте командную строку от имени администратора) и запустите установку оттуда. Кроме того, вы можете проверить настройки контроля учетных записей и опустить ползунок, если он слишком ограничен.

Другие вопросы по тегам