Создайте Настольный Ярлык на существующее использование ПАПКИ WiX

У меня есть потребность создать Настольный Ярлык на существующую ПАПКУ (НЕ в файл) использование Wix. Для разработки больше моя программа установщика имеет программу CustomAction записанное использование C#, связанный с ним. Эта программа CustomAction создает папку, под названием "BSS" которой путь выбран пользователем.

C:\ProgramData\MT\BSS

Теперь я должен поместить Настольный Ярлык на это использование папки WiX. Однако я встречаюсь с проблемой, так как эта папка не имеет структуры папок в WiX. Самый близкий код, который я мог найти, был следующим.

<Directory Id="DesktopFolder" Name="Desktop"/>
  <Directory Id="CommonAppDataFolder" Name="ProgramDataFolder"/>
  <Component Id="ComponentBSStrageShortcut" Guid="{8436995c-2e76-4030-b92d-c6b4bc243c43}">
    <Shortcut Id="ShortcutBSStrageShortcut"
              Directory="DesktopFolder"
              WorkingDirectory="APPLICATIONFOLDER"
              Target="[CommonAppDataFolder]/MTK/BSStrage"
              Name="BSStrage"
              Show="normal"/>
    <RegistryValue Action="write"
                   Key="SOFTWARE/MTK/BackStreet"
                   Root="HKCU"
                   Type="string"
                   KeyPath="yes"
                   Value="ApplicationFolderName"/>
  </Component>

Когда я создаю установщик этот путь, он на самом деле создает ярлык на Рабочем столе. Однако WiX, кажется, думает, что BSStrage является файлом/приложением, таким образом, он помещает ярлык на мнимое приложение под названием BSStrage в месте C:\ProgramData\MT. Но дважды щелкая по нему справка dosen't как нет никакой программы, которая может использоваться для открытия его.

Очевидно, я делаю его неправильно здесь. Может кто-то помогать мне с этим, поэтому как, как преодолеть эту проблему. Обратите внимание, что я чрезвычайно плохо знаком с Wix (это были только два дня), и никогда не работал с ним прежде. Любой пример кода очень помог бы.

6
задан JasonMArcher 13 July 2015 в 03:53
поделиться

2 ответа

Косая черта в ярлыке / @ Target должна быть обратной косой чертой. Explorer, вероятно, интерпретирует ваш ярлык как «Запустить CommonAppDataFolder с переключателями / MTK и / BSStrage». По крайней мере, это мое первое предположение.

2
ответ дан 17 December 2019 в 02:25
поделиться

Я немного изменил свои требования и заставил код работать следующим образом. Изменения сейчас создаю ярлык для папки ProgramData.

<!-- Desktop Shortcut --> 
  <Directory Id="DesktopFolder" Name="Desktop"/> 
  <Directory Id="CommonAppDataFolder" Name="ProgramDataFolder"/> 
  <Component Id="MTDesktopShortcut" Guid="{8436995c-2e76-4030-b92d-c6b4bc243c43}"> 
    <Shortcut Id="MTShortcut" 
              Directory="DesktopFolder" 
              WorkingDirectory="APPLICATIONFOLDER" 
              Target="[CommonAppDataFolder]" 
              Name="MT" 
              Show="normal"/> 
    <RegistryValue Action="write" 
                   Key="SOFTWARE/MT/BS" 
                   Root="HKCU" 
                   Type="string" 
                   KeyPath="yes" 
                   Value="ApplicationFolderName"/> 
  </Component> 

Работает нормально, ярлык создает нормально. Однако есть одна проблема, поскольку он создает ярлык на рабочем столе AllUsers, а я хочу, чтобы он был создан на рабочем столе текущего пользователя. Какое изменение мне следует сделать?

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

1
ответ дан 17 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: