无法为Excel 2007中的所有用户安装VST0 Excel插件

时间:2014-11-25 10:28:07

标签: c# excel deployment wix excel-addins

我开发了一个Wix Setup来为所有用户安装Excel插件。我想为所有用户安装适用于Excel 2007,2010和2013的VSTO Excel插件。但我能够在所有用户的Excel 2010中安装它 我无法在Excel 2007和2013中为所有用户安装。我正在使用以下注册表组件。我错过了什么吗?

  <Component Id="Registry_FriendlyName">
      <RegistryValue Id="RegKey_FriendlyName" Root="HKLM"
                     Key="Software\Microsoft\Office\Excel\AddIns\AddIn"
                     Name="FriendlyName"
                     Value="Add In"
                     Type="string" KeyPath="yes" />
    </Component>
    <Component Id="Registry_Description">
      <RegistryValue Id="RegKey_Description" Root="HKLM"
                     Key="Software\Microsoft\Office\Excel\AddIns\AddIn"
                     Name="Description"
                     Value="Excel Add-In"
                     Type="string" KeyPath="yes" />
    </Component>
    <Component Id="Registry_Manifest">
      <RegistryValue Id="RegKey_Manifest" Root="HKLM"
                     Key="Software\Microsoft\Office\Excel\AddIns\AddIn"
                     Name="Manifest" Value="[INSTALLFOLDER]AddIn.vsto|vstolocal"
                     Type="string" KeyPath="yes" />
    </Component>
    <Component Id="Registry_LoadBehavior">
      <RegistryValue Id="RegKey_LoadBehavior" Root="HKLM"
                     Key="Software\Microsoft\Office\Excel\AddIns\AddIn"
                     Name="LoadBehavior" Value="3"
                     Type="integer" KeyPath="yes" />
    </Component>

2 个答案:

答案 0 :(得分:0)

这更像是一个VSTO问题,而不是WiX问题。

您要为其安装哪种特定版本的Excel?在那里,我相信只有2007 SP3和更新的支持插件来自HKLM蜂巢。在此之前,由于安全问题,他们没有支持HKLM插件。

最后,你确定addin加载器本身没有被禁用吗?有时,如果您未能加载插件,则插件加载器本身将被禁用。确保仍然启用。

此外,在安装并测试插件后,请确保从命令提示符启动Excel并设置以下环境变量:

SET VSTO_SUPPRESSDISPLAYALERTS=0
SET VSTO_LOGALERTS=1

这将确保Excel在启动期间显示您的加载错误,以便您可以调试正在发生的事情。

答案 1 :(得分:0)

我们在工作中有类似的情况,但使用Word插件。

我发现在2007年,您需要一个额外的注册表项来“启用”vstolocal功能,如下所述:http://support.microsoft.com/kb/976811

供参考(如果将来URL丢失):

  

应用修补程序包976477(2007 Office system修补程序包(Mso-x-none.msp)的说明:2009年10月27日)   启用此修补程序包。为此,请按照下列步骤操作:   在注册表中,找到并单击以下注册表子项:

   HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Common\General\
   On the Edit menu, point to New, and then click DWORD Value.
   Type EnableLocalMachineVSTO, and then press ENTER.
   Right-click EnableLocalMachineVSTO, and then click Modify.
   In the Value data box, type 1, and then click OK.
   Exit Registry Editor.

我用“\ Word \”替换了注册表路径中的“\ Office \”,因此如果它不能按照该URL所描述的那样使用“\ Excel \”,您可能会找到成功。

编辑:有关信息,我相信上面提到的URL中的修补程序已包含在最新的Office 2007 Service Pack中,因此您可能不需要单独安装它。