ms-word - 如何打包 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
一个问题吗?
解决方案
我偶然发现Addins for Office 程序可能在 \Wow6432Node 下注册。帮助我的部分是:
即使我在具有 64 位办公室的 64 位机器上构建了加载项,WIX 安装程序也会设置,以便当我在 Win 10 64 位金盘机器(具有 64 位Office),它将注册设置添加到 HKLM\Software\Wow6432 节点,就好像机器有 32 位办公室一样。
我在 HKLM\Software\Microsoft 下手动创建了相同的 reg 键设置,并且加载项加载得很好。
所以,我必须弄清楚我需要对 WIX 配置设置做些什么,以使其适合具有 64 位办公室的机器。
顺便说一句,VSTO 加载项的 Microsoft 页面注册表项似乎有倒退:
推荐阅读
- android - 将我的 android 项目共享到 Github 后,应用程序文件被禁用且未上传
- firebase - Firebase Cloud Functions 使用 API 密钥保护 HTTPS 端点
- qemu - QEmu 的 `-nodefaults` 没有像我预期的那样工作
- c# - 无法在 C# 中将 EventHandler 作为参数传递
- c - xcrun:错误:无效的活动开发者路径
- javascript - 仅在提交表单之前填写必填字段时如何创建模式
- java - Java jTable 列未调整大小以适应应用程序启动时的内容
- python - ValueError : 对已关闭文件的 I/O 操作(文件已打开?)
- c# - .net core razor pages 多个路由属性
- c# - 需要结合 WHERE、AND 或 OR 的 SQL 帮助