У меня есть приложение, которое устанавливается с WiX 3 - большая часть установки уже работает нормально, но попытка заставить ярлык на рабочем столе работать, мне кажется, стоит моих мыслей ...
У меня естьмое приложение установлено, и у меня уже есть ярлык в папке «Пуск» - работает просто отлично.Но как мне запустить и запустить ярлык на рабочем столе?
<Product Id="*" Name="....." UpgradeCode="MY-GUID">
<Package Id="*" InstallerVersion="200" Compressed="yes" />
<Media Id="1" Cabinet="foobar.cab" EmbedCab="yes" />
<Property Id="ALLUSERS">1</Property>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="FooBar"/>
</Directory>
<Directory Id="DesktopFolder" SourceName="Desktop"/>
<Directory Id="ProgramFilesFolder">
<Directory Id="FoobarDir" Name="FOOBAR">
<Directory Id="INSTALLLOCATION" Name="FooApp">
<Component Id="MainFiles" Guid=".....">
<File Id="FooMainApp" Source="FooMainApp.exe" />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
....
<!-- this shortcut here works just fine ... -->
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="AppShortcut" Guid="...">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="FooBarApp" Description="..."
Target="[INSTALLLOCATION]FooMainApp.exe"
WorkingDirectory="INSTALLLOCATION"/>
</Component>
</DirectoryRef>
<!-- but this shortcut here never seems to work .. ... -->
<DirectoryRef Id="DesktopFolder">
<Component Id="DesktopShortcut" Guid="....." >
<Shortcut Id="DesktopAppShortcut"
Advertise="no"
Name="FooBarApp" Description="...."
Target="[INSTALLLOCATION]FooMainApp.exe"
WorkingDirectory="INSTALLLOCATION"/>
</Component>
</DirectoryRef>
Я получаю следующие ошибки:
ICE18: KeyPath для компонента: 'DesktopShortcut '- это каталог:' DesktopFolder '.Пара Каталог / Компонент должна быть указана в таблице CreateFolders.
ICE38: Компонент DesktopShortcut устанавливается в профиль пользователя.Он должен использовать ключ реестра в HKCU в качестве KeyPath, а не файл.
ICE43: Компонент DesktopShortcut имеет не объявленные ярлыки.Он должен использовать ключ реестра в HKCU в качестве KeyPath, а не файл.
Я не понимаю, что, черт возьми, WiX 3 / Windows Installer пытается сказать мне здесь .... кто-нибудь ??
Оба компонента, AppShortcut
и DesktopShortcut
, на самом деле являются частью "основной" функции - там я не вижу никаких проблем.Я не могу понять, что здесь может быть не так ....
Обновление: хорошо, поэтому я добавил некоторые элементы реестра в ярлык на рабочем столе
<Component Id="DesktopShortcut" Guid="BF3587B4-F52E-411E-8814-CFCBF8201C0D">
<RegistryKey Root="HKCU" Key="Software\Foo Inc\FooBarApp\Installed"
Action="createAndRemoveOnUninstall">
<RegistryValue Name="DTSC" Value="1" Type="integer" KeyPath="yes"/>
</RegistryKey>
<Shortcut Id="DesktopShortcut" Directory="DesktopFolder"
Name="FooBar" WorkingDirectory="INSTALLLOCATION"
Icon="foobar.ico"
Target="[INSTALLOCATION]FooMainApp.exe"/>
</Component>
теперь сообщения ICE пропали, но когда я пытаюсь установить приложение, я получаю сообщение об ошибке 1909 - целевой папки не существует или у вас нет разрешения на запись в нее (или что-то в этом роде)
Обновление 2: приведенный выше пример кода работает на Win XP, но продолжает работать на Win Server 2003 :-( Любые дальнейшие идеи ??