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> 问题是命令启动命令提示符,这对最终用户来说非常难看. 是否存在管理这些事情的延伸? 我现在正在使用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=""[System64Folder]dism.exe" /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,还可以指定回滚操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- haskell – GHCI在Windows上不那么懒惰?
- 我可以将32位本机DLL(不是.Net程序集)链接到我的64位.Net应
- windows-server-2008-r2 – 是否可以创建新的Windows Serve
- win-universal-app – 桌面应用程序中的UWP限制
- 在Windows 8 RTM中的.NET应用程序中嵌入Powershell v2.0
- Windows Server 2012 R2 WSUS-3:安装服务器角色
- Microsoft Visual Studio 2010(vs2010) 中文版安装
- 远程访问 – 将Team Viewer(8)设置为在后台运行(不可见)(Wi
- 从作为iSCSI目标公开的ZFS池中恢复NTFS数据
- 变量 – Windows批处理文件:什么是变量扩展,EnableDelayed