Wix: как создать ярлык рабочего стола, указывающий на виртуальный диск в разделе компьютер


Я хотел бы добавить ярлык на рабочем столе, который указывает на виртуальный диск, установленный в разделе "компьютер". Этот диск не имеет буквы, связанной с ним. Я успешно добавил ссылку на исполняемый файл, но все попытки с проводником потерпели неудачу. Когда я добавляю этот ярлык вручную, он получает следующий ярлык (в свойствах): ComputerMyProduct

Я попробовал следующее:

<Component Id="DesktopShortcut" Guid="8EF63340-10D5-4583-9E28-F2EFFA666761">
    <CreateFolder />
    <RegistryKey Root="HKCU" Key="SoftwareMyProductInstall" Action="createAndRemoveOnUninstall">
        <RegistryValue Name="DTSC" Value="1" Type="integer" KeyPath="yes" />
    </RegistryKey>
    <Shortcut Id="DesktopShortcut" Directory="DesktopFolder" Name="My Product" Icon="yoobitsIcon" Target="ComputerMyProduct" />
</Component>

Есть идеи?

1 2

1 ответ:

Одним из возможных решений является добавление ярлыка в качестве a .lnk файл и включить в качестве обычного файла в папку рабочего стола во время установки.

<Directory Id="DesktopFolder" Name="Desktop">
  <Component Id="MyProductDesktopShortcut" Guid="A47E6BEB-C7D6-4725-A94F-C6C52A55F31C">
    <RegistryKey Root="HKCU" Key="Software\MyProduct\DesktopShortcut" Action="createAndRemoveOnUninstall">
      <RegistryValue Name="DTSC" Value="1" Type="integer" KeyPath="yes" />
    </RegistryKey>
    <File Id="MyProductDesktopShortcutFile" Name="MyProduct.lnk" Source="MyProduct.lnk" DiskId="1" />
  </Component>
</Directory>

Недостаток: Значок зарегистрирован в системе .файл lnk не будет корректным, если приложение будет установлено в другой каталог, чем ожидалось. В этом случае это приведет к значку папки по умолчанию и настроить правильный значок, как только вы перейдете к этому виртуальному диску.