如何使用InstallShield在Windows Server 2012 R2上安装IIS

时间:2014-03-05 09:45:03

标签: iis installshield-2012 windows-server-2012-r2

我想通过InstallShield设置在Windows Server 2012上激活IIS。我尝试了以下DISM命令:

DISM.EXE /enable-feature /online /featureName:IIS-WebServerRole /featureName:IIS-WebServer

此处描述:Installing IIS 8.5 on Windows Server 2012 R2

执行安装程序时,会发生错误:

Error 1721

Process Monitor说,DISM将在C:\Windows\SysWOW64\DISM.EXE中执行,并产生Exit Status 11。作为文件位置,我使用了[SystemFolder]。当我定义文件位置C:\Windows\System32时,它也会使用C:\Windows\SysWOW64\DISM.EXE

激活IIS有什么困难的方法?

1 个答案:

答案 0 :(得分:2)

Per this post,错误代码11表示32位版本的DISM正在64位系统上使用。这与在64位系统上安装32位MSI并使用它来定位和启动DISM相对应。 Windows Installer不允许您从32位MSI引用64位位置。 Heath Stewart的文章Different Packages are Required for Different Processor Architectures触及了这一点,但主要是从安装到32位或64位的角度。事实证明,在那里找到文件同样困难。

要从64位位置启动64位DISM,您需要一些其他代码。可以从32位代码中找到64位系统文件夹,但我知道某些64位位置只能通过64位代码正确查询。因此我建议您编写一个64位帮助程序exe来查找并启动64位DISM。然后,您将需要两个自定义操作的变体,以便您只尝试在64位系统上使用64位包装器(定义{{​​1}}时)并使用32位包装器或直接调用32位系统。

或者,如果升级和使用exe是一个选项,InstallShield 2013及更高版本包括对作为Suite项目类型的一部分安装Windows功能的支持,这将为您处理这项工作。 (免责声明:我有权使用InstallShield工作。)