我已经构建了一个安装程序来安装机器软件。但是,用户需要填写一个值(机器ID),因为它需要替换.INI文件中已存在的值。替换值的代码没有问题,因为我已经让它工作了。
但是我不知道如何从正在执行的脚本中的WIX安装程序获取值(例如:DE123654)以使用WIX自定义操作替换值。我创建了一个自定义表单来询问值,我用来获取值的代码如下:
BI000001
我在这个网站上找到了这个代码,但是我不知道如何从这里获取我的脚本中的值,或者我如何让脚本查找已经输入的值。关于如何实现这一目标的任何建议?
我在安装过程开始时要求MachineID,因此在实际安装过程开始之前已知该值。 该脚本嵌入在安装程序中,并在安装过程结束时执行,因为需要更改的文件已经位于targer系统上的正确位置。
提前致谢,
答案 0 :(得分:1)
您需要创建自定义操作来设置要传递的属性,Property
值必须与调用脚本的自定义操作的Id
相同,这样:
<Product ...>
<CustomAction
Id="SetProperties"
Property="ScriptCA"
HideTarget="yes"
Value="[MachineIdNumber];[OtherProperty]"
/>
<CustomAction
Id="ScriptCA"
BinaryKey="CustomActionsLib"
DllEntry="ScriptMethod"
Execute="deferred"
Impersonate="no"
Return="check"
/>
<InstallExecuteSequence>
<Custom Action="SetProperties" Before="ScriptCA" />
<Custom Action="ScriptCA" Before="InstallFinalize">NOT REMOVE="ALL"</Custom>
</InstallExecuteSequence>
</Product>