使用高级安装程序为 Excel DNA 插件创建安装程序

Create installer For Excel DNA Add-In using Advanced Installer

我使用 excel dna 加载项为 excel 创建了一些新的用户定义函数,当我手动将加载项添加到 excel 时它起作用了,现在我想创建一个安装程序以自动将此加载项部署到 excel,我下载了高级安装程序并创建了一个新的安装程序项目,在产品详细信息界面中指定名称、版本和发布者,在先决条件中我选择了 .Net Framework 4.5(web安装程序),在启动时 conditions/Software 我选择了 Installed Office Application/Microsoft Excel,在文件和文件夹中我添加了我的 class 库 (.dll)/我的 xll 文件和我的 dna 文件,最后我选择了主题 => 构建和 运行 我的项目但是当我执行我 运行 这个项目时生成的设置并尝试从 excel 测试我的功能时,我没有找到它们,我创建的安装程序没有将此加载项添加到 excel,请问是否缺少某些步骤?

Advanced Installer 为 Office add-ins 提供了一个向导,您可以在链接文章的视频中看到。

此向导配置一些注册表项,根据 MSDN 文档,这些注册表是 Office 检测您的插件的方式。如果你没有它们,你的安装程序是不完整的。

您需要使用该向导创建项目,之后您可以进一步自定义您在问题中指定的所有项目设置(产品详细信息、启动条件等...)

对于 .xll Excel 加载项(如使用 Excel-DNA 制作的加载项),您需要一些 Office 安装程序通常不会添加的注册表项。它们在 Excel 键之一下被称为 OPEN、OPEN1、OPEN2 等。

对于高级安装程序,您可以在此处阅读非常详细的文章:https://jiripik.com/2017/02/25/use-advanced-installer-excel-dna-project/

另一种选择是使用标准 WiX 工具包来制作安装程序。为此,您可以从 Excel-DNA WiXInstaller 作为模板项目开始:https://github.com/Excel-DNA/WiXInstaller 它有一个自定义操作项目来为那些额外的注册表项制作安装程序。

您需要添加自定义操作来注册插件,例如:

On Error Resume Next
Dim oXL, oAddin
Set oXL = CreateObject("Excel.Application")
oXL.Workbooks.Add
Set oAddin = oXL.AddIns.Add(Session.property("CustomActionData") & "MyAddin.xll", False)
oAddin.Installed = True
oXL.Quit
Set oXL = Nothing

正如 Govert 的回答中提到的,这篇文章解释了如何设置自定义操作: https://jiripik.com/2017/02/25/use-advanced-installer-excel-dna-project/

我按照文章中的步骤为我的 Excel 基于 DNA 的插件创建了一个可靠的安装程序,它运行得非常好。唯一的问题是您需要创建 2 个安装程序:一个用于 32 位 Excel,另一个用于 64 位 Excel。不幸的是,我找不到可靠的方法来检测安装了哪个版本的 Excel。

希望对您有所帮助。