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

如何在WiX ExePackage中使用dism.exe激活IIS功能?,iis,wix,Iis,Wix,我用WIX3.9做了一个引导程序项目。 在这个项目中,我安装了IIS Express,然后激活了IIS功能。 到目前为止,我从我的计算机中添加了Dism.exe作为资源,并激活了以下功能: <ExePackage Id='IIS_WebserverRole' DisplayName='Installing IIS: IIS-WebServerRole' PerMachine='yes' SourceFile='.\Re

我用WIX3.9做了一个引导程序项目。 在这个项目中,我安装了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>

这很好,但我认为最好使用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]是一个Burn标准变量,根据示例返回“C:\Windows\System32\”。 但这不起作用。 所以我试了下一个。 您可以在本文的第一个答案中找到:


但即使这样也不行。 我总是在日志文件中发现一个错误,即无法执行可执行文件;)

怎么了? 谁能给我一个提示,怎么办?
提前谢谢

改用
[System64Folder]dism.exe

---编辑---

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

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


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

您是否尝试将此SourceFile='[SystemFolder]Dism.exe'更改为SourceFile='[SystemFolder]\Dism.exe'?在exe名称前添加反斜杠。你能详细说明为什么这有助于操作吗?简短的答案往往不如较长的答案有用,因为较长的答案有一些关于如何更好的解释。
<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>