使用组策略部署时 WIX MSI 自定义操作未运行
Posted
技术标签:
【中文标题】使用组策略部署时 WIX MSI 自定义操作未运行【英文标题】:WIX MSI customaction not running when deployed using Group Policy 【发布时间】:2013-05-10 20:20:52 【问题描述】:我正在使用 WIX 创建一个 MSI,它具有安装 clickonce 应用程序的自定义操作。我想通过 GPO 部署 MSI。当我双击运行 msi 时,自定义操作运行良好,但通过 GPO 部署时,自定义操作似乎没有运行。但是,如果您查看控制面板中的添加/删除程序,您会在其中列出产品/msi,就好像它已成功安装一样。
要查看通过 GPO 部署时自定义操作是否有效,我创建了一个简单的自定义操作,它只是将文件写入 c:\temp(现有)文件夹。在 installfinalize 步骤之前向 InstallExecuteSequence 和 AdminExecuteSequence 添加了自定义操作。尝试了延迟执行和立即执行。当您双击要安装的 msi 但不是通过 GPO 时,它可以工作。
通过 GPO 部署 msi 时是否可以进行自定义操作?有什么限制吗?为了让它与 GPO 一起工作,我需要做些什么特别的事情吗?
提前致谢!
鲁克山
【问题讨论】:
请发布示例代码,详细说明您的实现。 【参考方案1】:我想通了。问题是我没有配置 GPO 以在用户登录时安装包。在组策略属性中选中该复选框后,它可以工作。
如果您将软件分配给用户并且未选中“登录时安装此应用程序”,则该应用程序将列在用户的添加/删除程序面板上,但不会真正安装它。所以我的印象是它在没有安装时成功安装而没有运行自定义操作。
现在我在安装执行序列下列出了我的自定义操作
<InstallExecuteSequence>
<Custom Before='InstallFinalize' Action='ClickOnceIntallCustomAction' >NOT REMOVE</Custom>
</InstallExecuteSequence>
并设置为立即执行并返回检查
<CustomAction Id="ClickOnceIntallCustomAction" BinaryKey="ClickOnceInstallBinary" Return="check" Execute="immediate" DllEntry="Test" ></CustomAction>
【讨论】:
以上是关于使用组策略部署时 WIX MSI 自定义操作未运行的主要内容,如果未能解决你的问题,请参考以下文章
Wix 自定义卸载操作 - 如何在 msi 删除文件之前运行