[英]passing variable with an custom action WIX installer
我在傳遞所需的變量時遇到問題。 問題是這樣的:
我正在創建和安裝程序,需要同時在x86和x64上運行。 使用以下代碼更改我管理的安裝目標:
<?if $(sys.BUILDARCH)=x64?>
<?define PlatformProgramFilesFolder = "ProgramFilesX86"?>
<?define FOLDER_NAME = Program Files (x86) ?>
<?else?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder"?>
<?define FOLDER_NAME = Program Files ?>
<?endif?>
<Directory Id="$(var.PlatformProgramFilesFolder)" Name="$(var.FOLDER_NAME)">
這可以正常工作,但是我也有一個CA.dll,需要獲取變量FOLDER_NAME,因為腳本對文件進行了一些更改,並且這些文件的路徑也需要更改,以便指向正確的位置。
我確實有一個將屬性轉移到同一腳本的自定義操作
<Property Id ="MACHINE_ID_NUMBER" Secure ="yes">
<![CDATA[]]>
</Property>
<Property Id ="MACHINE_TYPE" Secure ="yes">
<![CDATA[]]>
</Property>
<CustomAction
Id="SetProperties"
Property="ValueAdaptionScript"
HideTarget="no"
Value="MachineID=[MACHINE_ID_NUMBER];MachineType=[MACHINE_TYPE]"
/>
<CustomAction
Id="ValueAdaptionScript"
BinaryKey="StringTransfer"
DllEntry="CustomAction1"
Execute="deferred"
Impersonate="no"
Return="check"
/>
<InstallExecuteSequence>
<Custom Action="SetProperties" Before="ValueAdaptionScript" />
<Custom Action="ValueAdaptionScript" Before="InstallFinalize">NOT REMOVE="ALL"</Custom>
</InstallExecuteSequence>
問題是我無法將這兩段代碼組合在一起並正常工作。 問題是我無法像在自定義操作中使用它那樣獲取屬性中變量的值。
我錯過了什么才能使其正常工作,或者我完全以錯誤的方式進行了工作?
提前致謝,
我自己弄清楚了,事實證明,我只是在錯誤的方向尋找,這很容易。
這是我所做的:
<Property Id ="PLATFORM_PROGRAM_FILES" Secure ="yes">
<![CDATA[$(var.FOLDER_NAME)]]>
</Property>
我要做的就是給屬性賦變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.