Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/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
Installation Inno安装程序-运行脚本在新机器的第一次尝试中不起作用_Installation_Inno Setup_Pascalscript - Fatal编程技术网

Installation Inno安装程序-运行脚本在新机器的第一次尝试中不起作用

Installation Inno安装程序-运行脚本在新机器的第一次尝试中不起作用,installation,inno-setup,pascalscript,Installation,Inno Setup,Pascalscript,我使用Inno Setup Compiler 6.0.2创建了一个简单的可执行(.exe)文件,用于安装Windows应用程序 .exe文件调用vbscript“Setup.vbs”,该脚本解压“Application.zip”文件并更新环境变量 当我第一次在新机器上运行.exe文件时,.vbs文件不会执行。但是,从第二次尝试开始,它就可以正常工作。这是一个已知的问题还是有解决方案 下面是我用来调用run.vbs文件的代码片段 [代码] 函数PrepareToInstall(var NeedsR

我使用Inno Setup Compiler 6.0.2创建了一个简单的可执行(.exe)文件,用于安装Windows应用程序

.exe文件调用vbscript“Setup.vbs”,该脚本解压“Application.zip”文件并更新环境变量

当我第一次在新机器上运行.exe文件时,.vbs文件不会执行。但是,从第二次尝试开始,它就可以正常工作。这是一个已知的问题还是有解决方案

下面是我用来调用run.vbs文件的代码片段

[代码]
函数PrepareToInstall(var NeedsRestart:Boolean):字符串;
var结果代码:整数;
开始
ShellExec(“”,ExpandConstant(“{app}\{MyAppExeName}”),“”,,,SW_SHOW,ewwaitUnfiltered,ResultCode)
结束;

更新 我希望在安装之前执行.vbs。因此,我尝试了提取临时文件,但仍然面临同样的问题。不确定下面的代码有什么问题

#定义MyAppExeName“Setup.vbs”
[档案]
来源:“..\Application\Installation\u Setup\Setup.vbs”;DestDir:“{app}”;标志:忽略版本
[守则]
函数PrepareToInstall(var NeedsRestart:Boolean):字符串;
变量
结果代码:整数;
开始
ExtractTemporaryFile(“{#MyAppExeName}”);
ShellExec(“”,ExpandConstant(“{app}\{MyAppExeName}”),“”,,,SW_SHOW,ewwaitUnfiltered,ResultCode)
结束;
发生在安装之前。在执行已安装的文件时,在调用该文件时,该文件还不存在

可能的解决办法

  • 安装后从以下位置执行脚本:

    或者您可以使用
    [Run]
    部分:

  • 如果您需要在安装之前执行脚本(我不认为这是您的情况),请使用

  • 要提取ZIP,您不需要VBS脚本,您可以直接从Inno设置代码中执行此操作。


感谢您的回复!我无法将代码片段粘贴到注释部分。因此,我发布了一个寻求澄清的答案和
ExpandConstant({tmp}{MyAppExeName}')
而不是
ExpandConstant({tmp}{MyAppExeName}')
对我有效。谢谢谢谢安德鲁!刚接触stackoverflow,很难在评论中发布代码。