Я пытаюсь создать несколько ярлыков для моего приложения, которые передают разные аргументы в командной строке, используя атрибут Arguments
элемента Ярлык . Я хочу иметь возможность ссылаться на существующее свойство из другого свойства в моем файле WiX .
Я хочу иметь возможность создать ярлык, ссылаясь на свойство ARGUMENTS
через:
<Component Id="MyAppProgramMenuShortcut" Guid="MY-GUID-HERE">
<RegistryValue Root="HKCU"
Key="Software\[Manufacturer]\[ProductName]\MyAppShortcut" Type="string"
Value="" KeyPath="yes" />
<Shortcut Id="ProgramMenuShortcutMyApp" Directory="ProgramMenuDir"
Name="MyApp" Target="[SHORTCUT_TARGET]"
Arguments="-jar myApp.jar [ARGUMENTS]" WorkingDirectory="INSTALLDIR"
Icon="logo.ico" />
</Component>
Я пробовал что-то эквивалентное:
<Property Id="PROGRAM_FILES">C:\Program Files</Property>
<Property Id="MY_APP_DIR">[PROGRAM_FILES]\MyApp</Property>
<Property Id="ARGUMENTS">[MY_APP_DIR]\fileA.xml [MY_APP_DIR]\fileB.xml</Property>
но тогда я получаю это предупреждение при прохождении через свечей :
предупреждение CNDL1077: свойство 'MY_APP_DIR' содержит
'[PROGRAM_FILES]' в его значении, которое является недопустимой ссылкой на
другая собственность. Если это значение строковый литерал, а не свойство
ссылка, пожалуйста, игнорируйте это предупреждение. Чтобы установить свойство с
значение другого свойства, используйте CustomAction со свойством и значением
атрибуты.
Итак, основываясь на предложении в предупреждении, я перешел к чему-то эквивалентному:
<CustomAction Id="PROGRAM_FILES" Property="PROGRAM_FILES" Value="C:\Program Files"/>
<CustomAction Id="MY_APP_DIR" Property="MY_APP_DIR" Value="[PROGRAM_FILES]\MyApp"/>
<CustomAction Id="ARGUMENTS" Property="ARGUMENTS" Value="[MY_APP_DIR]\fileA.xml [MY_APP_DIR]\fileB.xml"/>
и я не получаю предупреждений или ошибок, но проблема в том, что при установке приложения ярлыки не имеют аргументов в целевом поле.
Разве я не делаю то, что должен делать? Есть ли способ сделать то, что я хочу сделать?