通过MSI / WiX部署到所有用户时,Outlook 2007加载项拒绝加载

时间:2020-06-27 21:32:54

标签: wix windows-installer vsto outlook-addin office-addins

我已经尝试完成这一看似简单的任务了整整一天。因此,如果有人可以阐明我在这里缺少什么,我将不胜感激。

我编写了一个Outlook 2007加载项(在Visual Studio 2008中为C#项目),现在我正在尝试为其编写MSI安装程序(使用WiX)。安装过程还需要安装VS Tools For Office Runtime,我将单独进行安装。

然后,以下是注册表项,我已经为当前用户对其进行了测试。使用WiX标记:

  <Component Id="RegistryRegAddin" Guid="{GUID}">
    <RegistryKey Id="RegKey_AddIn" Root="HKCU" Key="Software\Microsoft\Office\Outlook\Addins\$(var.ProductThis)" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">

      <RegistryValue Type="string" Name="Description" Value="$(var.AppDescr)" />
      <RegistryValue Type="string" Name="FriendlyName" Value="$(var.ProductThis)" />
      <RegistryValue Type="integer" Name="LoadBehavior" Value="3" />
      <RegistryValue Type="string" Name="Manifest" Value="[INSTALLFOLDER]AddInName.vsto|vstolocal" />

    </RegistryKey>
  </Component>

因此,这对于当前用户而言效果很好。

但是现在我试图对其进行更改,以便为所有用户安装该加载项。我在上面的WiX注册表标记中将HKCU修改为HKLM。但是在那种情况下,MSI可以很好地安装(在32位Windows 7 Pro上),但是我的加载项不会加载到Outlook中。

为什么!???

然后,如果我在Outlook中转到“工具”->“信任中心”->“加载项”->“我的加载项”位于“非活动应用程序加载项”中,但是当我尝试对其进行检查以使其启用时,Outlook会显示此信息讯息:

在HKEY_LOCAL_MACHINE中注册的Office加载项的连接状态 无法更改。

enter image description here

啊!!!!

2 个答案:

答案 0 :(得分:0)

我认为这是Office 2007特有的。尝试在您的代码中添加以下代码片段:

<Component Id="EnableLocalMachineVSTO" Permanent="yes">
  <Condition>ALLUSERS=1</Condition>
  <RegistryKey Root="HKLM" Key="Software\Microsoft\Office\12.0\Common\General">
    <RegistryValue Name="EnableLocalMachineVSTO" Value="1" Type="integer" KeyPath="yes" />
  </RegistryKey>
</Component>

EnableLocalMachineVSTO是您可以在搜索框中输入以了解更多信息的关键字。这是AFAIK的“我的加载项在以当前用户身份安装时有效,而在以本地计算机安装时却不起作用”的常见问题之一。

答案 1 :(得分:0)

但是在那种情况下,MSI可以很好地安装(在32位Windows 7 Pro上),但是我的加载项不会加载到Outlook中。

有多种原因可能导致您的加载项无法加载。其中您可以找到以下几点以及可能的诊断方法:

  1. 确保所有必备组件均已正确安装。
  2. 启动时不会引发异常。 Microsoft Office应用程序可以禁用行为异常的VSTO加载项。如果应用程序未加载VSTO加载项,则该应用程序可能已硬禁用或软禁用了VSTO加载项。 当VSTO加载项导致应用程序意外关闭时,可能会发生硬禁用。如果您在调试计算机上停止调试器时,它也可能在开发计算机上发生。 VSTO加载项中的Startup事件处理程序正在执行。 当VSTO加载项产生不会导致应用程序意外关闭的错误时,可能会发生软禁用。例如,如果在启动事件处理程序执行期间引发未处理的异常,则应用程序可能会软禁用VSTO加载项。 当您重新启用软禁用的VSTO加载项时,应用程序将立即尝试加载VSTO加载项。如果尚未解决最初导致应用程序软禁用VSTO加载项的问题,则应用程序将再次软禁用VSTO加载项。
  3. 使用Fuslogvw.exe实用程序检查是否已加载正确的程序集。有关更多信息,请参见Assembly Binding Log Viewer
  4. MSI引擎故障。尝试看看MSI日志文件。

您可能还会在VSTO AllUser addIn fails to load on several clients页上找到类似的情况。

相关问题