Inno安装程序无法在System32中启动.exe

时间:2017-07-21 15:08:37

标签: iis inno-setup

我正在使用Inno Setup为我的程序制作安装程序。我想在安装后运行IIS管理器。所以,我使用这段代码:

[Tasks]
Name: StartAfterInstall; Description: Run IIS after install;

[Run]
Filename: "C:\WINDOWS\system32\inetsrv\InetMgr.exe"; Description:"launching IIS prova"; \
    Flags: postinstall  nowait skipifsilent ; Tasks: StartAfterInstall;

这应该打开IIS管理器,但它不起作用,给我这个错误:

  

无法执行文件C:\ WINDOWS \ system32 \ inetsrv \ InetMgr.exe
  CreateProcessor失败,代码2,找不到文件"

使用相同的代码,但在不同的路径中运行其他.exe文件。这是否取决于此特定路径:C:\WINDOWS\system32\inetsrv

1 个答案:

答案 0 :(得分:1)

可能只有64位版本的InetMgr.exe

作为32位应用程序中的Inno Setup,默认为gets redirected to C:\Windows\SysWOW64(32位版本的C:\Windows\System32)。如果InetMgr.exe中没有32位版本的C:\Windows\SysWOW64,则Inno安装程序无法找到它。

添加Flags: 64bit以使Inno Setup找到InetMgr.exe的64位版本。

或使用64-bit install mode

附注:不要硬编码C:\Windows\System32,因为在某些系统上该路径可能不同。使用{sys} constant

[Run]
Filename: "{sys}\inetsrv\InetMgr.exe"; Flags: 64bit; ...