-1

我正在使用 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 failed, code 2 , file not found"

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

4

1 回答 1

3

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

作为 32 位应用程序中的 Inno Setup,默认情况下它被重定向到C:\Windows\SysWOW64(32 位版本的C:\Windows\System32)。如果 中没有 32 位版本,InetMgr.exeC:\Windows\SysWOW64Inno Setup 找不到。

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

或者使用64 位安装模式


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


[Run]
Filename: "{sys}\inetsrv\InetMgr.exe"; Flags: 64bit; ...
于 2017-07-21T16:34:03.843 回答