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



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

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

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

<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] 是一个刻录标准变量,它返回每个示例"C:\Windows\System32\"。但这行不通。所以我尝试了以下方法。您可以在本文的第一个答案中找到它:

安装

IIS(如果尚未安装)

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

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

出了

什么问题?谁能给我一个提示,该怎么办?提前感谢!

改用[System64Folder]dism.exe

---编辑---

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

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

除非使用[System64Folder],否则在 64 位操作系统中,[SystemFolder] 将指向C:WindowsSysWow64C:WindowSystem32 64 位版本的 dism.exe 所在的位置。

这个问题是在更改之前提出的,但是当我到达此页面时,我感到困惑,因此认为值得一提。

最新更新