如何将字符串从WIX安装程序传输到VB脚本?

时间:2015-08-11 10:28:45

标签: vb.net wix

我已经构建了一个安装程序来安装机器软件。但是,用户需要填写一个值(机器ID),因为它需要替换.INI文件中已存在的值。替换值的代码没有问题,因为我已经让它工作了。

但是我不知道如何从正在执行的脚本中的WIX安装程序获取值(例如:DE123654)以使用WIX自定义操作替换值。我创建了一个自定义表单来询问值,我用来获取值的代码如下:

BI000001

我在这个网站上找到了这个代码,但是我不知道如何从这里获取我的脚本中的值,或者我如何让脚本查找已经输入的值。关于如何实现这一目标的任何建议?

我在安装过程开始时要求MachineID,因此在实际安装过程开始之前已知该值。 该脚本嵌入在安装程序中,并在安装过程结束时执行,因为需要更改的文件已经位于targer系统上的正确位置。

提前致谢,

1 个答案:

答案 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>