【发布时间】:2010-12-02 02:52:06
【问题描述】:
是否可以让我的 Internet Explorer 插件自行更新,而无需使用 .msi 手动卸载/重新安装?我一直在考虑尝试以编程方式执行此操作,但我不确定需要做什么(注册 .dll 等)。
谢谢,内森
【问题讨论】:
标签: internet-explorer browser-addons ieaddon
是否可以让我的 Internet Explorer 插件自行更新,而无需使用 .msi 手动卸载/重新安装?我一直在考虑尝试以编程方式执行此操作,但我不确定需要做什么(注册 .dll 等)。
谢谢,内森
【问题讨论】:
标签: internet-explorer browser-addons ieaddon
只需在后台下载新的 MSI。完成后,提示用户,如果他们同意,则运行新的 MSI。
RE:避免用户输入: 您可以在未经他们许可的情况下执行此操作...但是由于安装新的附加组件需要重新启动浏览器,因此随机执行此操作可能不是最好的选择。当您知道商店将关闭时,您可能会安排它发生的时间,但是如果它们在黑色星期五的午夜开门呢?你必须考虑清楚。
另一种方法是实现一个存根 DLL,它公开您的扩展实现的所有接口,并将该存根注册为 IE 加载的那个。然后你的存根可以在真正的 dll 上调用 loadlibrary 并通过所有的调用。当你想安装一个新版本时,你下载新的实现 dll 并让存根卸载旧的,然后加载新的。如果您正确执行此操作,对用户来说可能看起来很简单...当新的 dll 需要新的注册表项或您需要更新存根...等等时,困难就来了。所有这些问题都可以解决,但需要付出努力爆炸。
我的建议是保持简单,直到您绝对必须达到这些长度。
【讨论】: