我用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:WindowsSysWow64
不C:WindowSystem32
64 位版本的 dism.exe 所在的位置。
这个问题是在更改之前提出的,但是当我到达此页面时,我感到困惑,因此认为值得一提。