Vb.net 如何将字符串从WIX安装程序传输到VB脚本?
我已经建立了一个安装程序来安装机器软件。但是,用户需要填写一个值(机器ID),因为它需要替换.INI文件中已经存在的值。替换值的代码没有问题,因为我已经让它工作了 但是,我不知道如何从正在执行的脚本中的WIX安装程序获取值(例如:DE123654),以使用WIX自定义操作替换该值。我创建了一个用于询问值的自定义表单,用于获取值的代码如下所示: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
<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(),但是这会将某种链接放置到临时文件,而不是我想要的值。我试过几件事,但都不管用。我做错了什么?