首页 > 解决方案 > 如何打包 VSTO Word 插件以部署到使用 WIX 运行 Microsoft Office 64 位的 64 位 Windows 10 计算机?

问题描述

问题

我无法让 64 位Word加载(或以任何方式承认存在)其他工作的Word VSTO add-in.

讨论

我有一个Word VSTO add-in使用 Visual Studio 2017 在运行 Microsoft Office 32 位的 64 位 Windows 7 机器上开发的作品。我使用WIX安装程序来部署加载项。我成功地将加载项部署到运行 32 位 Office 的 Windows 7 64 位“主”金盘上,即,任何从主金盘调出虚拟桌面的用户都可以使用该加载项。有关详细信息,请参见此处Nova Sys Eng的答案。

现在,我的组织正在将运行 32 位 Office 的 Win 7 64 位 VDI 替换为运行 64 位 Office 的 Win 10 64 位 VDI。为此,我创建了一个 64 位 Win 10 开发机器,安装了 Office 64 位、Visual Studio 2019、WIX Votive2019 扩展和 WIX 工具集。在这台开发机器上,我构建了插件的发布版本,并在这台开发机器上安装了 MSI。当我提出Word这台开发机器时,它工作正常。

接下来,我将在开发机上搭建的微星携带到64位的Win 10主金盘机上(再次运行Office 64位),并成功安装了插件(即WIX安装程序完成无错误)。我还在64位Win 10主金盘机上安装了VS 2010 Tools for Office Runtime(10.0.60828 2018年发布)。就像在64位Win 7大师金盘(Office 32位)上一样,插件安装在64位Win 10大师金盘机上

C:\Program Files (x86)\FooAddIn

并且注册表设置是

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\Word\AddIns\FooAddIn]
"FriendlyName"="Foo Add-In"
"Description"="Foo Word Add-In"
"Manifest"="C:\\Program Files (x86)\\FooAddIn\\FooAddIn.vsto|vstolocal"
"LoadBehavior"=dword:00000003

当我在 64 位 Win 10 主金盘机上启动 Word 时,加载项无法加载,因为 Word 显然不知道它的存在,即。当我查看 Word 选项 -> 加载项时,加载项根本不存在。当我选择 COM 插件 -> GO 时,COM 插件对话框也不会显示插件。

还有一项:

在开发机器上,Build Config Manager 如下所示,即 WIX 安装程序 (FooAddInSetup) 的平台设置为 x86,没有其他选项可用。

在此处输入图像描述

为什么 Word 不承认我的加载项的存在?

加载项安装在Program Files (x86)问题中吗?

WIX安装程序的平台是x86一个问题吗?

标签: ms-wordwix64-bitvsto

解决方案


我偶然发现Addins for Office 程序可能在 \Wow6432Node 下注册。帮助我的部分是:

在此处输入图像描述

即使我在具有 64 位办公室的 64 位机器上构建了加载项,WIX 安装程序也会设置,以便当我在 Win 10 64 位金盘机器(具有 64 位Office),它将注册设置添加到 HKLM\Software\Wow6432 节点,就好像机器有 32 位办公室一样。

我在 HKLM\Software\Microsoft 下手动创建了相同的 reg 键设置,并且加载项加载得很好。

所以,我必须弄清楚我需要对 WIX 配置设置做些什么,以使其适合具有 64 位办公室的机器。

顺便说一句,VSTO 加载项的 Microsoft 页面注册表项似乎有倒退:

在此处输入图像描述


推荐阅读