Я хочу сделать установщик wix с необязательным ярлыком для рабочего стола для всех пользователей. Необязательные средства, я не могу поместить его в component
основного exe, но в отдельном component
, так что я могу установить отдельный feature
для ярлыка.Установите дополнительные ярлыки для рабочего стола для всех пользователей
При этом, Wix жалуется:
ошибка LGHT0204: ICE38: Компонент DesktopShortcut устанавливается в профиль пользователя. Он должен использовать раздел реестра под HKCU как свой KeyPath, а не файл.
Так что я установил ключ реестра фильме так:
<Component Id="DesktopShortcut" Guid="767f3e19-9a7d-4793-9782-75516494a57c">
<Shortcut Target="[APPLICATIONROOTDIRECTORY]ocean.exe" Id="OceanShortcutDesktop" Name="$(var.ProductName)" WorkingDirectory='APPLICATIONROOTDIRECTORY' Icon="OceanIcon"/>
<RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]\installs' Name="desktopshortcut" Type='string' Value='' KeyPath='yes' />
</Component>
Ярлык идет в "All Users", так как я установил ALLUSERS = 1 свойство. Однако для реестра нет эквивалента, и ключ находится в текущем (установочном) реестре пользователей. Это проблема IMHO: если профиль пользователя удаляется, ярлык больше не будет удаляться при удалении.
Использование "HKLM" вместо того, чтобы привести к ошибке в WiX (смешивание для каждого пользователя и для каждой машины):
ошибка LGHT0204: ICE38: Компонент DesktopShortcut устанавливается в профиле пользователя. Ключ реестра KeyPath должен подпадать под HKCU.
Это совершенно глупо от wix, так как компонент «Все пользователи» должен быть связан с машиной, а не с обычным пользователем, так как нет реестра «всех пользователей».
Любая идея?
Взгляните на этот вопрос http://stackoverflow.com/q/751000/1331719 это может быть полезно. – IlirB