我使用FireBreath,VS2010,为Windows,所有浏览器编写了一个插件。
在 FireBreath 文档中,我看到我必须安装 WiX。我安装了它。我使用自动 fbgen 工具创建了项目,因此它自动为我创建了一个 WiX。
我无法从文档中理解现在要做的事情:
我必须编辑生成的 WiX 源文件吗?如果是,那里要改变什么?
在将触发安装创建的 msi 的对象标记中写什么?或者至少告诉用户需要安装并将他链接到下载?
10倍!
我使用FireBreath,VS2010,为Windows,所有浏览器编写了一个插件。
在 FireBreath 文档中,我看到我必须安装 WiX。我安装了它。我使用自动 fbgen 工具创建了项目,因此它自动为我创建了一个 WiX。
我无法从文档中理解现在要做的事情:
我必须编辑生成的 WiX 源文件吗?如果是,那里要改变什么?
在将触发安装创建的 msi 的对象标记中写什么?或者至少告诉用户需要安装并将他链接到下载?
10倍!
安装 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 的安全选项被调低)。希望关于 MSI 安全问题的讨论线程会产生一些答案。
更新:正如Richard/taxian 所暗示的,MSI 必须打包在 CAB 文件中,以便 IE 安装它。正确获取 INF 并创建 CAB 需要一些额外的步骤,如 RB所述。此外,Vista/Win7 不允许 INF 调用 CAB 文件之外的任何二进制文件,因此必须使用存根启动应用程序(请参阅此线程和 Roey 在底部发布的示例代码)。