Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何将字符串从WIX安装程序传输到VB脚本?_Vb.net_Wix - Fatal编程技术网

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

Vb.net 如何将字符串从WIX安装程序传输到VB脚本?,vb.net,wix,Vb.net,Wix,我已经建立了一个安装程序来安装机器软件。但是,用户需要填写一个值(机器ID),因为它需要替换.INI文件中已经存在的值。替换值的代码没有问题,因为我已经让它工作了 但是,我不知道如何从正在执行的脚本中的WIX安装程序获取值(例如:DE123654),以使用WIX自定义操作替换该值。我创建了一个用于询问值的自定义表单,用于获取值的代码如下所示: <Control Id="InputField" Type="Edit" X="20" Y="100" Width="140" Height="18

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

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

<Control Id="InputField" Type="Edit" X="20" Y="100" Width="140" Height="18" Property="MachineIdNumber" Text="{80}"/>

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

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


提前感谢,

您需要创建一个自定义操作来设置要传递的属性,并且
属性值必须与调用脚本的自定义操作的
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>

不删除=“全部”

您能否从安装程序中调用一个微型可执行文件,将机器名作为命令行参数,然后从那里管理它?恐怕我不完全理解您的意思。我对这类事情的了解是有限的。我调用的脚本是可执行的。谢谢您提供的信息。但是,我仍然有一些问题,我应该创建一个新脚本来更改值,还是可以使用我已经使用的脚本?(我认为一个新的脚本是最好的选择)我知道自定义操作为脚本提供了价值,我如何将它合并到我的脚本中,以便它获取价值并使用它?当然,我自己也在努力找到答案,我只是还不知道到底要找什么。巴德:我会尽力的。你需要包括你的脚本代码(相关部分)。如果没有它,很难以更直接的方式回答你的问题。我几乎能让它工作了。但是,由于替换旧文本的文本不正确,因此未正确使用该值。我在VB脚本中使用以下代码来获取值:
Dim MachineID As String=Command()
,但是这会将某种链接放置到临时文件,而不是我想要的值。我试过几件事,但都不管用。我做错了什么?