使用组策略部署时 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 删除文件之前运行

WiX:使用msiexec / i Setup.msi / qn时不运行自定义操作(没有UI的安静模式安装)

Wix:修补时运行条件自定义操作(非完整安装)

无法将我的 WiX 自定义操作安排到 msi

部署时 WIX MSI 应用程序未在用户帐户下启动应用程序

wix 自定义操作,管理员组