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

如何使用InstallShield在Windows Server 2012 R2上安装IIS,iis,installshield-2012,windows-server-2012-r2,Iis,Installshield 2012,Windows Server 2012 R2,我想通过InstallShield安装程序激活Windows Server 2012上的IIS。我尝试了以下DISM命令: DISM.EXE /enable-feature /online /featureName:IIS-WebServerRole /featureName:IIS-WebServer 此处描述: 当我执行设置时,会发生一个错误: 进程监视器显示,DISM将在C:\Windows\SysWOW64\DISM.EXE中执行,并导致退出状态11。作为文件位置,我使用了[Syst

我想通过InstallShield安装程序激活Windows Server 2012上的IIS。我尝试了以下DISM命令:

DISM.EXE /enable-feature /online /featureName:IIS-WebServerRole /featureName:IIS-WebServer
此处描述:

当我执行设置时,会发生一个错误:

进程监视器显示,DISM将在
C:\Windows\SysWOW64\DISM.EXE
中执行,并导致
退出状态11
。作为文件位置,我使用了
[SystemFolder]
。当我定义文件位置
C:\Windows\System32
时,它还使用
C:\Windows\SysWOW64\DISM.EXE

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

根据,错误代码11表示32位版本的DISM正在64位系统上使用。这对应于在64位系统上安装32位MSI,并使用它定位和启动DISM。Windows Installer不允许您从32位MSI引用64位位置。Heath Stewart的文章谈到了这一点,但主要是从安装到32位或64位位置的角度。事实证明,在那里查找文件同样困难

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

或者,如果升级和使用exe是一个选项,InstallShield 2013和更高版本将支持将Windows功能作为套件项目类型的一部分进行安装,从而为您处理这项工作。(免责声明:我是在InstallShield上工作的。)