我試圖通過使用Shortcut元素的Arguments
屬性爲我的應用程序創建多個快捷方式,這些快捷方式在命令行上傳遞不同的參數。我希望能夠從我的WiX文件中的其他資產中引用現有資產。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>
但後來路過的時候我得到這樣的警告它通過candle.exe:
warni ng 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"/>
和我沒有得到任何警告或錯誤,但問題是,當我安裝應用程序的快捷方式別在目標領域沒有爭論。
我不是在做我應該做的事嗎?有沒有辦法做我想做的事情?
我不知道'[#FileId]'語法。謝謝。唯一的問題是通過_light.exe_傳遞**警告LGHT1076:ICE69 **。所以,它可以工作,但不推薦使用,因爲我在不同的'Component'中使用了文件引用。 –
如果始終確保組件處於相同功能中,則ICE69 *警告即可。 ICE的警告幾乎總是意味着「嘿,這是你應該看看,以確保它是你的意思,」不是什麼或不推薦。 –