1

我希望我的安装程序关闭所有 IExplorer 实例,然后执行安装。要关闭 IE,我需要添加一个注册表项,这样所有选项卡都将在没有对话框的情况下关闭,然后我 <util:CloseApplication... />用来关闭 IE 实例。

CloseApplicationComponent注册密钥的都运行良好。我的问题是如何安排它们,以便CloseApplication只有在添加注册表项后才会执行。

我唯一能把<util:CloseApplication... />没有错误的地方放在<Product...>. 组件执行的顺序由以下因素决定:

<Feature..><ComponentRef../></Feature..>

我不知道如何控制<util:CloseApplication... />元素的执行顺序并将其延迟到设置注册表项为止。

4

1 回答 1

1

<util:CloseApplication>元素被翻译成许多自定义动作。其中之一是WixCloseApplications实际上安排延迟的 CA 来完成这项工作。默认安排在之前InstallFiles,您可以尝试在之后重新安排WriteRegistryValues

<InstallExecuteSequence>
  ...
  <Custom Action="WixCloseApplications" After="WriteRegistryValues" />
  ...
</InstallExecuteSequence>

我在实际安装中没有这样做,所以你最好玩一下并彻底测试以确保它在重新调度后按预期关闭应用程序。

更新:这是问题的技术方面。还有道德的:)

AFAIU,您要做的是在安装时更改 IE 设置。我不认为这是一个很好的用户体验。想象一下,您按照自己喜欢的方式设置浏览器,突然间它更改了其中一项设置。你永远不会知道是一些不相关的安装做到了,你会为此罪责怪微软。:)

因此,尝试重新考虑安装架构的这一部分。可能,您可能想要添加一个启动条件来检查该 IE 设置并通知用户。

于 2012-07-19T09:30:16.027 回答