我正在使用WIX创建一个MSI,它具有自定义操作来安装clickonce应用程序。我想通过GPO部署MSI。当我只是双击以运行msi时,自定义操作运行正常,但是当通过GPO部署时,自定义操作似乎没有运行。但是,如果您查看控制面板中的添加/删除程序,则会在其中列出产品/ msi,就好像它已成功安装一样。
要在通过GPO部署时查看自定义操作是否完全有效,我创建了一个简单的自定义操作,只将文件写入c:\ temp(现有)文件夹。在installfinalize步骤之前,将自定义操作添加到InstallExecuteSequence和AdminExecuteSequence。尝试了defferred执行和立即执行。当您双击msi进行安装但不通过GPO时,它可以正常工作。
通过GPO部署msi时是否可以进行自定义操作?有没有限制?为了让它与GPO一起工作,我需要做些什么特别的事情吗?
提前致谢!
Rukshan
答案 0 :(得分:2)
我明白了。问题是我没有在用户登录时配置GPO来安装软件包。在检查组策略属性中的复选框后,它可以正常工作。
如果您将软件分配给用户并且未选中“在登录时安装此应用程序”,则应用程序将列在用户的“添加/删除程序”面板上,但并未真正安装它。所以我的印象是它没有安装时没有运行自定义操作而成功安装。
现在,我在安装执行序列
下列出了自定义操作<InstallExecuteSequence>
<Custom Before='InstallFinalize' Action='ClickOnceIntallCustomAction' >NOT REMOVE</Custom>
</InstallExecuteSequence>
它被设置为立即执行并检查返回
<CustomAction Id="ClickOnceIntallCustomAction" BinaryKey="ClickOnceInstallBinary" Return="check" Execute="immediate" DllEntry="Test" ></CustomAction>