2014-03-05 142 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上工作。)

相關問題