使用registry来安装Excel AddIn

我创build了一个名为Excel的插件

Project Count_Per Person.xlam

当我打开excel并去发展> AddIns并select我的AddIn安装,它不会保持安装,如果我closures了Excel中,即使保存后。 我做的AddIn,在'AddIns'标签下创build一个新的MenuBarButton,

所以我创build了一个新的registry项来在启动时安装插件

HKEY_CURRENT_USER \软件\微软\办公室\ EXCEL \加载项\ ProjectCount_PerPerson

钥匙看起来像这样

(Default) REG_SZ (value not set) Description REG_SZ Project Count_Per Person FriendlyName REG_SZ Project Count_Per Person LoadBehavior DWORD 0x00000003 (3) Manifest REG_SZ C:\Users\b012918\AppData\Roaming\Microsoft\AddIns\Project Count_Per Person.xlam 

当我启动Excel时,它显示它正在安装AddIn,但是我得到一个

exception阅读清单从

文件:/// C:/Users/b012918/AppData/Roaming/Microsoft/AddIns/Project%Count_Per%Person.xlam:

清单可能无效或文件无法打开。

http://pastebin.com/bN1datV5

任何洞察到我搞乱了将是有益的。

附加信息:

如果插件在我启动excel的时候被卸载了,它会给出错误信息。 如果插件被“检查”,当我开始excel,它给下面的评论下载错误。 即使插件是以前安装,CommandBarButton不会保持原位。 另外,在选项 – >插件中,插件被声明为“活动”。

为了澄清,Excel(和其他Office应用程序),VBA插件和COM插件有两种types的插件。 COM插件是通过Visual Studio和Visual Studio Tools for Office开发的。 这正是brett所引用的。

但更可能的types是正常的VBA Excel加载项,通常通过.xlam文件分发。 为了为用户自动加载这样一个插件,你需要在机器上的某个本地目录上加载插件文件,并通过registry引用它。 对于Excel 2010,REG文件加载相应的registry项是:

 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Options] "OPEN"="C:\\Path\\To\Addin\\Addin.xlam" 

这样,每次启动Excel时都会加载插件。

我使用Visual Studio构build了一个名为“FirstExcelAddIn”的插件 ,并检查了它在构buildregistry项时的作用。 我有我的registry正确的问题中显示的键,我只是没有所有的文件,它在一个COM插件寻找。

这是我的function插件在registry中看起来像

 (Default) REG_SZ (value not set) Description REG_SZ FirstExcelAddIn FriendlyName REG_SZ FirstExcelAddIn LoadBehavior DWORD 0x00000003 (3) Manifest REG_SZ C:\Users\b012918\AppData\Roaming\Microsoft\AddIns\FirstExcelAddIn.vsto|vstolocal 

以下是需要在文件夹中使插件正常工作的文件

  1. FirstExcelAddIn.dll
  2. FirstExcelAddIn.dll.manifest
  3. FirstExcelAddIn.vsto
  4. Microsoft.Office.Tools.Common.v4.0.Utilities.dll

我怀疑,如果你从头开始编写你的加载项而没有工具,那么你只需要“.dll”“.dll.manifest”来使你的插件工作。