Tôi đang cố gắng tạo nhiều lối tắt cho ứng dụng của mình chuyển các đối số khác nhau trên dòng lệnh bằng cách sử dụng thuộc tính Arguments
của phần tử Shortcut. Tôi muốn có thể tham chiếu thuộc tính hiện tại từ một thuộc tính khác trong tệp WiX của tôi.Tài sản tham khảo WiX Tài sản khác
Tôi muốn để có thể tạo ra một shortcut bằng cách tham khảo ARGUMENTS
bất động sản qua:
<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>
Tôi đã thử một cái gì đó tương đương với:
<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>
nhưng sau đó tôi nhận được cảnh báo này khi đi qua thông qua candle.exe:
warni ng CNDL1077: Thuộc tính 'MY_APP_DIR' chứa '[PROGRAM_FILES]' trong giá trị của nó là tham chiếu bất hợp pháp đến một thuộc tính khác. Nếu giá trị này là một chuỗi ký tự, không phải là thuộc tính , vui lòng bỏ qua cảnh báo này. Để đặt thuộc tính với giá trị của thuộc tính khác, hãy sử dụng CustomAction với thuộc tính và giá trị thuộc tính.
Vì vậy, căn cứ vào đề nghị trong cảnh báo tôi chuyển sang một cái gì đó tương đương với:
<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"/>
và tôi không nhận được cảnh báo hoặc lỗi, nhưng vấn đề là khi tôi cài đặt ứng dụng các phím tắt don không có đối số trong trường mục tiêu.
Tôi có đang làm điều gì đó mà tôi nên làm không? Có cách nào để làm những gì tôi muốn làm không?
Tôi không biết về cú pháp '[#FileId]'. Cảm ơn. Vấn đề duy nhất là cảnh báo ** LGHT1076: ICE69 ** khi chuyển qua _light.exe_. Vì vậy, nó hoạt động nhưng nó không được khuyến khích vì tôi đang sử dụng tham chiếu tập tin trong 'Thành phần' khác nhau. –
Cảnh báo ICE69 * là OK nếu bạn luôn đảm bảo rằng các thành phần nằm trong cùng một tính năng. Cảnh báo ICE hầu như luôn có nghĩa là "này, đây là điều bạn nên xem xét để đảm bảo đó là ý của bạn", không phải điều gì đó là hay không được khuyến nghị. –