我正在使用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
?
答案 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位版本。
附注:不要硬编码C:\Windows\System32
,因为在某些系统上该路径可能不同。使用{sys}
constant。
[Run]
Filename: "{sys}\inetsrv\InetMgr.exe"; Flags: 64bit; ...