2013-06-26 3 views
4

Я хочу сделать установщик 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, так как компонент «Все пользователи» должен быть связан с машиной, а не с обычным пользователем, так как нет реестра «всех пользователей».

Любая идея?

+0

Взгляните на этот вопрос http://stackoverflow.com/q/751000/1331719 это может быть полезно. – IlirB

ответ

0

Вы можете попытаться изменить корень реестра на «HKMU» (из того, что я помню, он должен был записывать в HKEY_LOCAL_MACHINE, когда установка выполняется для каждой машины и под HKEY_CURRENT_USER, когда это не так).

Если изменить корень к «HKMU» вы получите ошибку ICE57 (компонент «DesktopShortcut» имеет и для каждого пользователя данных и ключевого ресурса, который может быть либо для каждого пользователя или на машине.)

Вы можете подавить эту ошибку, и установщик создаст ярлык всех пользователей (Он работал, когда я пробовал, , но я не уверен, что это лучший способ сделать это).

(Чтобы отключить епархию ошибки ICE57: How to fix ICE57.Per-User installation)