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