Я работаю над приложением C#. У меня есть установщик Wix, и я хочу создать ярлыки для своего приложения. После некоторых исследований я нашел код для создания ярлыков для рабочего стола и меню «Пуск».Wix не удалось создать ярлык
Существует мой код:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="$(var.compagny)"/>
</Directory>
<Directory Id="DesktopFolder" SourceName="Desktop"/>
</Directory>
<!-- Shortcuts -->
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="*">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="$(var.product)"
Description="$(var.product) application"
Target="MyApplication.exe"
WorkingDirectory="INSTALLFOLDER"/>
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
<RegistryKey Root="HKCU" Key="SOFTWARE\$(var.compagny)\$(var.product)">
<RegistryValue Name="installed" Type="integer" Value="1" KeyPath="yes" />
</RegistryKey>
</Component>
</DirectoryRef>
<DirectoryRef Id="DesktopFolder">
<Component Id="ApplicationShortcutDesk" Guid="*">
<Shortcut Id="ApplicationStartDeskShortcut"
Name="$(var.product)"
Description="$(var.product) application"
Target="MyApplication.exe"
WorkingDirectory="INSTALLFOLDER"/>
<RemoveFolder Id="DesktopFolder" On="uninstall"/>
<RegistryKey Root="HKCU" Key="SOFTWARE\$(var.compagny)\$(var.product)">
<RegistryValue Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</RegistryKey>
</Component>
</DirectoryRef>
<Feature Id="ProductFeature" Title="$(var.product)" Level="1">
<ComponentRef Id="ApplicationShortcut"/>
<ComponentRef Id="ApplicationShortcutDesk"/>
</Feature>
После этого регистр создается в HKCU \ SOFTWARE \ MyCompagny \ продукт с ключом установлен. Но нет ярлыка.
Что я пропустил?
Редактировать:
Есть журнал:
MSI (ы) (5C: В8) [14: 51: 31: 801]: Выполнение оп: ActionStart (Имя = CreateShortcuts, Описание = Создание ярлыков, Шаблон = Ярлык: [1])
Действие 14:51:31: CreateShortcuts. Создание ярлыков
MSI (ы) (5C: В8) [14: 51: 31: 802]: Выполнение оп: IconCreate (иконка = icone.ico, данных = BinaryData)
CreateShortcuts: Ярлык: Icone. ICO
MSI (ы) (5C: В8) [14: 51: 31: 808]: Выполнение оп: SetTargetFolder (Папка = 23 \ MyCompagny)
MSI (ы) (5C: В8) [14 : 51: 31: 810]: SHELL32 :: SHGetFolderPath возвращается: C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs
MSI (s) (5C: B8) [14: 51: 31: 810]: проведение оп: SetTargetFolder (Папка = 25)
MSI (ы) (5C: В8) [14: 51: 31: 812]: Shell32 :: SHGetFolderPath возвращается: C: \ Users \ Public \ Desktop
MSI (5C: B8) [14: 51: 31: 812]: Выполнение op: ActionStart (Name = WriteRegistryValues, Description = Написание значений системного реестра, Template = Key: [1], Name: [2], Value: [3])
Действие 14:51:31: WriteRegistryValues.запись значений системного реестра
MSI (ы) (5C: В8) [14: 51: 31: 812]: Выполнение оп: ProgressTotal (Всего = 2, Тип = 1, ByteEquivalent = 13200)
MSI (s) (5C: B8) [14: 51: 31: 813]: Выполнение op: RegOpenKey (Root = -2147483647, Key = SOFTWARE \ MyCompagny \ MyApplication ,, BinaryType = 0 ,,)
MSI (s) (5C: B8) [14: 51: 31: 813]: Выполнение op: RegAddValue (Name = установлено, Value = # 1)
WriteRegistryValues: Key: \ SOFTWARE \ MyCompagny \ MyApplication, Name: installed, Value : № 1
MSI (ы) (5C: В8) [14: 51: 31: 813]: Выполнение оп: RegAddValue (Имя = установлена, Value = # 1,)
WriteRegistryValues: Ключ: \ Software \ MyCompagny \ MyApplication , Имя: установлено, Value: # 1
Это может быть проблема с Guid? (Я не знаю, как это работает) –