在安装开始之前,如何在Wix中运行VBScript?

在安装开始之前,如何在Wix中运行VBScript?,vbscript,wix,custom-action,Vbscript,Wix,Custom Action,此代码适用于: <CustomAction Id="StopVBS" Directory="INSTALLDIR" ExeCommand="wscript.exe stop.vbs" Execute="immediate" Return="ignore" /> 这就是问题所在,因为脚本不在INSTALLDIR中: <Binary Id="StopAll" SourceFile="source\stop-all.vbs" /> <CustomAction

此代码适用于:

    <CustomAction Id="StopVBS" Directory="INSTALLDIR" ExeCommand="wscript.exe stop.vbs" Execute="immediate" Return="ignore" />

这就是问题所在,因为脚本不在INSTALLDIR中:

<Binary Id="StopAll" SourceFile="source\stop-all.vbs" />
<CustomAction Id="StopAllVBS" BinaryKey="StopAll" ExeCommand="wscript.exe stop-all.vbs" Execute="immediate" Return="ignore">
</CustomAction>
<InstallUISequence>
<Custom Action="StopAllVBS" After="CostFinalize" />
</InstallUISequence>


任何帮助都将不胜感激

如果文件在安装开始前已在目录中,或者如果msi安装了该文件,则可以使用该文件(stop all.vbs)尚未在INSTALLDIR中,但作业必须在COSTFINALIZE之后运行,因为只有在vbs脚本之前运行(脚本正在停止某些进程)时,安装才能正确运行。我的问题是,我如何告诉Wix脚本的位置???您可以添加浏览按钮并导航到文件位置,然后将其存储在属性中,或者将位置从引导程序发送到msi并存储在属性库中。对不起,我对Wix不是很有经验。你有一个例子吗?当你从cmd执行wix msi时,你可以设置属性值。例如,创建新进程并设置参数:msiexec/i\{0}\\{6}.msi\'PATHNAME=\{0}\'SSLCERTPATH=\{1}\'+“MSINEWINSTANCE=1 TRANSFORMS=\\”:{2}\'USERPATH={3}ENVIRONMENTPATH={4}SSLCERTPASS=\{5}\'/L*v\'{0}\\\\{6}Log.txt\',XmlSettings.EnvironmentFolderPath,FindCertificates.SslCertPath,environment,XmlSettings.IisUserFolderPath,XmlSettings.EnvironmentFolderPath,FindCertificates.SslCertPass,msname)