2014-03-05 115 views
2

我想通过InstallShield安装程序在Windows Server 2012上激活IIS。我尝试了以下DISM命令:如何使用InstallShield在Windows Server 2012 R2上安装IIS

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

说明如下:Installing IIS 8.5 on Windows Server 2012 R2

当我执行我的设置,出现错误:

Error 1721

进程监视器说,这DISM会执行于C:\Windows\SysWOW64\DISM.EXE,结果为Exit Status 11。作为文件位置我使用[SystemFolder]。当我定义文件位置C:\Windows\System32时,它也使用C:\Windows\SysWOW64\DISM.EXE

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

回答

1

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

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

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

相关问题