Deployment 如何部署Excel XLL加载项并在Excel中自动注册加载项

Deployment 如何部署Excel XLL加载项并在Excel中自动注册加载项,deployment,xll,Deployment,Xll,我使用ExcelDNA和C#开发了一个Excel XLL。我正准备开始测试部署,但找不到多少实际提供有效步骤的信息 我的项目是作为一个类库开发的,带有ExcelDna引用。在.dna文件中,我有下面的代码,它将所有资源打包到XLL的打包版本中(即pack=“true”属性) 为了在Excel中自动注册XLL,我需要添加一个注册表项,该注册表项取决于用户拥有的Excel版本 例如,在我的计算机(运行32位Excel 2007的64位Windows 7)上,我需要向以下路径添加注册表项: HKEY_

我使用ExcelDNA和C#开发了一个Excel XLL。我正准备开始测试部署,但找不到多少实际提供有效步骤的信息

我的项目是作为一个类库开发的,带有ExcelDna引用。在.dna文件中,我有下面的代码,它将所有资源打包到XLL的打包版本中(即pack=“true”属性)

为了在Excel中自动注册XLL,我需要添加一个注册表项,该注册表项取决于用户拥有的Excel版本

例如,在我的计算机(运行32位Excel 2007的64位Windows 7)上,我需要向以下路径添加注册表项:

HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options\
该键将是带有OPEN(或OPEN1、OPEN2等)名称和值的REG_SZ类型 /R“ExcelXLL打包.xll”

不过我有两个问题。第一个是确定用户必须获得正确路径的Excel版本,第二个是确定我需要创建的正确打开版本(例如,如果用户已经有OPEN、OPEN1和OPEN2,那么我将创建OPEN3密钥)

我正在尝试使用Setup and Deployment项目或InstallShield LE项目进行安装,但无法确定如何执行此操作。有人知道怎么做吗?或者有更好的方法吗

编辑1:

我对此做了大量的研究,并研究了几个windows安装程序

在PackageandDeployment和InstallShield LE中,我可以通过将安装程序类放入类库并将项目输出与安装捆绑在一起,使安装/卸载正常工作。在这种方法中,我使用installer类处理插入/删除注册表项的操作。我遇到的问题是,用户必须先卸载,然后才能运行新安装(无更新功能)

我下载了Setup Factory演示版本,可以进行安装/更新,但无法进行框架检查(演示中未附带)。此外,卸载失败(尽管我可以通过更多的调查使其工作)

我对使用WiX安装程序感兴趣,但想知道是否有人有如何使用WiX执行部署的示例。我还想知道是否需要使用installer类,或者是否有其他方法来处理在HKCU\Software\Microsoft\Office[Version].0\Excel\Options下搜索OPEN[n]键的操作。如果要使用项目输出启用installer类,则需要有两个单独的目标目录(一个在Program Files下用于基本项目输出,另一个在%appdata%\Microsoft\AddIns下用于打包XLL)

非常感谢您的帮助

谢谢


Lee

要检测Excel 32位与64位,您可以检查注册表:


对于OPEN、OPEN1、OPEN2等,您通常需要在安装脚本中执行一个自定义操作来枚举密钥。

使用IsWix和Wix 3.7,我能够解决这个问题

有关如何注册组件的有用链接如下所示:

用于生成C#类以处理Windows Installer自定义操作:

用于将CustomAction.config文件的属性设置为Content

编辑1:

了解WiX的一般知识(非常重要)

Hi Govert,请参阅上面的编辑1,因为我已经了解了需要什么,但一直在尝试找到一个安装程序来执行安装、更新和卸载选项。本质上,我需要一个安装程序,它允许我在不强制用户先卸载的情况下,用更新的安装覆盖一个安装。
%APPDATA%\Microsoft\AddIns
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options\