根据FireFox的要求安装MSI的MSI

时间:2011-09-07 19:37:05

标签: wix firefox-addon

随着新的firefox,我们正在发送越来越多的库,因为我们交互的XPom接口正在发生变化。我们在10个dll并且正在增加,每个都有近2M的大小。

这个尺寸是一些用户关注的问题。

虽然我们考虑重组库以分离我们可以在它们之间共享的部分,但我们正在考虑如何在支持版本升级的同时减少磁盘空间。

例如,用户安装了FireFox 3.6和4.0,当我们安装产品时,我们为每个版本安装一个dll。当Firefox升级4.0(比如说6.0)时,我们现在可以从msi安装缺少dll的6.0支持。

关于如何实现这一目标的任何想法? 我们无缘无故担心吗?

我的第一个想法是'AllowAdvertise',当FF尝试按照chrome的指示加载dll时,它会导致安装,它似乎不起作用。

2 个答案:

答案 0 :(得分:2)

我的第一反应是建议你离开XPCOM并转向js-ctypes。毕竟,这是Mozilla推动扩展开发人员的方向(例如,请参阅Wladimir Palant's comments)。如果二进制代码中没有任何东西绝对需要使用XPCOM,那么在需要时通过js-ctypes发送与JS接口的DLL会更高兴。

答案 1 :(得分:2)

我猜您的扩展程序仅限Windows,因此支持多个平台不是问题。一个可能的短期解决方案:

  • 为每个Firefox版本设置单独的扩展程序包,将其标记为仅与此Firefox版本兼容(例如minVersion 4.0和maxVersion 4。*)。
  • 安装扩展程序后,请安装与用户安装的Firefox版本兼容的版本。
  • 确保您的扩展程序有一个指向您服务器的updateURL条目。在网址中包含%APP_VERSION%非常重要。
  • 确保测试Firefox测试版并及时为下一个Firefox版本准备新的扩展版本(发布版本为scheduled on Tuesdays every 6 weeks,下一版本发布于9月27日)。
  • 根据所使用的Firefox版本,配置服务器以将不同的包指示为更新。因此,%APP_VERSION% 4.0.1的更新检查将发送至extension-ff4.xpi,而%APP_VERSION% 6.0将获得extension-ff6.xpi

Firefox会在应用程序更新时检查扩展更新。如果您可以为其提供兼容的更新,则会安装它。但是每六周准备一次新软件包需要付出很多努力,我想你要重构你的代码/尽快转移到js-ctypes。哦,我认为你需要忽略一些用户安装了多个Firefox版本的不太可能的情况。