【发布时间】:2020-06-29 05:18:27
【问题描述】:
我已经尝试了一天多的时间来完成这个看似简单的任务。因此,如果有人能阐明我在这里遗漏了什么,我将不胜感激?
我编写了一个 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 加载项的连接状态 无法更改。
啊!!!!
【问题讨论】:
-
我已经很多年没有处理插件了,所以这里可能有更多错误。但是,普通用户将没有 HKLM 的写入权限。您可以尝试为普通用户添加对密钥的访问权限。 How-to video(希望视频清晰,快速搜索 - 我只会添加“用户”)。
-
我将添加this link to the larger topic of how to get applications to run that require admin access(设计错误)。不是 100% 相关,但也许这是一个有用的东西略读。
标签: wix windows-installer vsto outlook-addin office-addins