加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

WIX启用Windows功能

发布时间:2020-12-14 02:05:15 所属栏目:Windows 来源:网络整理
导读:我必须检查是否启用了一些 Windows功能才能安装我的软件. 我可以检查它或使用dism命令行工具安装它. 我创建了一个自定义操作来执行此操作,但有没有办法以“WIX本机方式”执行此操作? Property Id="dism" Value="dism.exe" /CustomAction Id="InstallMSMQCon
我必须检查是否启用了一些 Windows功能才能安装我的软件.

我可以检查它或使用dism命令行工具安装它.

我创建了一个自定义操作来执行此操作,但有没有办法以“WIX本机方式”执行此操作?

<Property Id="dism" Value="dism.exe" />
<CustomAction Id="InstallMSMQContainer" Property="dism" ExeCommand=" /online /enable-feature /featurename:MSMQ-Container /featurename:MSMQ-Server /featurename:MSMQ-ADIntegration" Return="check" Impersonate="yes"  Execute="oncePerProcess"/>

<InstallUISequence>
  <Custom Action="InstallMSMQContainer" After="CostFinalize" Overridable="yes">NOT Installed</Custom>
</InstallUISequence>

问题是命令启动命令提示符,这对最终用户来说非常难看.
我怎样才能让它变得更好?我不知道我是否需要一个bootstraper来执行此操作(如安装.NET Framework).

是否存在管理这些事情的延伸?

我现在正在使用WIX 3.7.

解决方法

David Gardiner的答案在我的案例中暗示了正确的解决方案.无需创建自己的自定义操作.以下是如何为64位Windows安装执行此操作:

首先确定是否安装了MSMQ:

<Property Id="MSMQINSTALLED">
  <RegistrySearch Id="MSMQVersion" Root="HKLM" Key="SOFTWAREMicrosoftMSMQParameters" Type="raw" Name="CurrentBuild" />
</Property>

声明您的自定义操作.你需要两个.一个用于将属性设置为dism的路径,另一个用于执行它:

<CustomAction Id="InstallMsmq_Set" Property="InstallMsmq" Value="&quot;[System64Folder]dism.exe&quot; /online /enable-feature /featurename:msmq-server /all" Execute="immediate"/>
<CustomAction Id="InstallMsmq" BinaryKey="WixCA" DllEntry="CAQuietExec64" Execute="deferred" Return="check"/>

最后在安装顺序中指定自定义操作:

<InstallExecuteSequence>
  <Custom Action="InstallMsmq_Set" After="CostFinalize"/>
  <Custom Action="InstallMsmq" After="InstallInitialize">NOT REMOVE AND NOT MSMQINSTALLED</Custom> 
</InstallExecuteSequence>

因为这可能需要一点时间,所以我添加了以下内容来更新安装程序状态文本:

<UI> 
  <ProgressText Action="InstallMsmq">Installing MSMQ</ProgressText> 
</UI>

如果要在安装失败时删除MSMQ,还可以指定回滚操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读