如何在WiX ExePackage中使用dism.exe进行IIS功能激活?

时间:2015-01-20 13:30:33

标签: iis wix

我使用WiX 3.9制作了一个bootstrapper项目。 在这个项目中我安装IIS Express,然后我激活IIS功能。 到目前为止,我从我的计算机中添加了Dism.exe作为资源并激活了以下功能:

<ExePackage Id='IIS_WebserverRole'
            DisplayName='Installing IIS: IIS-WebServerRole'
            PerMachine='yes'
            SourceFile='.\Resources\Dism.exe'
            InstallCondition='SetupType="1" OR SetupType="3"'
            InstallCommand='/Online /Enable-Feature /FeatureName:IIS-WebServerRole'>
</ExePackage>

这样可以正常工作,但我认为最好使用我们可以在要安装的计算机上的C:\ Windows \ System32 \中找到的Dism.exe,而不是我自己计算机上的资源文件。 所以我试过这个:

<ExePackage Id='IIS_WebserverRole'
            DisplayName='Installing IIS: IIS-WebServerRole'
            PerMachine='yes'
            SourceFile='[SystemFolder]Dism.exe'
            InstallCondition='SetupType="1" OR SetupType="3"'
            InstallCommand='/Online /Enable-Feature /FeatureName:IIS-WebServerRole'>
</ExePackage>

[SystemFolder]是一个Burn标准变量,它返回每个例子&#34; C:\ Windows \ System32 \&#34;。 但这并不奏效。 所以我尝试了以下一个。 您可以在本文的第一个答案中找到它:

Install IIS if not installed yet

<ExePackage Id='IIS_WebserverRole'
            DisplayName='Installing IIS: IIS-WebServerRole'
            PerMachine='yes'
            SourceFile='.\Resources\run.bat'
            InstallCondition='SetupType="1" OR SetupType="3"'
            InstallCommand='Dism.exe /Online /Enable-Feature /FeatureName:IIS-WebServerRole'>
</ExePackage>

但即使这样也行不通。 我总是在日志文件中遇到错误,无法执行可执行文件;)

出了什么问题? 任何人都可以给我一个提示,该怎么办? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

使用[System64Folder]dism.exe代替

---编辑---

https://github.com/wixtoolset/issues/issues/5307

如上所述,WiX指向属性[SystemFolder]的目录已更新。

除非使用[System64Folder],否则在64位操作系统中,[SystemFolder]将指向C:\Windows\SysWow64而不是C:\Window\System32,其中64位版本的dism.exe所在。

这个问题在改变之前被问到,但是当我到达这个页面时,这让我很困惑,所以认为值得一提。