FireBreath插件自动安装

时间:2011-05-25 09:45:52

标签: plugins wix windows-installer firebreath

我使用FireBreath,VS2010为Windows编写了一个插件,适用于所有浏览器。

在FireBreath文档中,我看到我必须安装WiX。我安装了它。 我使用自动fbgen工具创建了项目,因此它自动为我创建了一个WiX。

我无法从文档中理解现在要做的事情:

  1. 我是否必须编辑生成的WiX源文件?如果是的话,那里有什么改变?

  2. 在触发安装msi的对象标签中写什么? 或者至少告诉用户需要安装并将他链接到下载?

  3. 10倍!

1 个答案:

答案 0 :(得分:5)

安装WiX Toolkit后,重新运行prep __。bat文件以重新生成安装程序项目以及主插件项目。构建插件项目,然后构建名为{YourPlugin} _WiXInstaller的安装程序项目。 msi将被放置在Firebreath的\ build \ bin \ {YourPlugin} \ {Configuration}目录中({Configuration}是Debug,Release等)。

除非您确实要更改特定设置,否则无需编辑WiX文件。我能想到的一件事是将默认的每用户安装更改为所有用户。每用户通常更好,因为它避免了UAC问题。

将它部署到用户有点棘手。对于大多数浏览器,用户必须保存&运行msi。在IE上,您可以在HTML正文中声明一个对象,并将代码库指向包含插件的URL:

<object id="pluginid" type="application/x-yourplugin" width="0" height="0" codebase="/YourPlugin.msi" >
    <param name="onload" value="pluginLoaded" />
</object>

然而,IE9的安全性似乎阻止了MSI。如果使用插件DLL(codebase =“/ YourPlugin.dll”),它确实有效。此自动安装方法仅适用于带有签名二进制文件的IE(除非IE的安全选项被降低)。 希望a discussion thread on the MSI security issue会产生一些答案。

更新: 作为hinted by Richard / taxilian,MSI必须打包在CAB文件中,以便IE安装它。正确获取INF并创建CAB需要一些additional steps as documented by RB。并且为了增加另一个皱纹,Vista / Win7不允许INF调用CAB文件之外的任何二进制文件,因此必须使用存根启动应用程序(请参阅this thread并将Roey发布到底部的示例代码)