我使用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>
但即使这样也行不通。 我总是在日志文件中遇到错误,无法执行可执行文件;)
出了什么问题? 任何人都可以给我一个提示,该怎么办? 提前谢谢!
答案 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所在。
这个问题在改变之前被问到,但是当我到达这个页面时,这让我很困惑,所以认为值得一提。