小编RoK*_*oKa的帖子

MS Office Word VSTO"按需加载"

我们开发了一种标准VSTO插件的产品(Word 2010和Word 2013,仅限x86).默认情况下,安装它时,会为所有用户安装它(即,将插件注册表项插入HKLM - HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node]\Microsoft\Office\Word\Addins).

当该值LoadBehaviorREG键值设置为0x3(即"在启动时加载"),该插件工作完全正常,但是当我们设定的值LoadBehavior0x10(即"按需加载"),该插件无法正常工作,我们会期望:

由于UAC(并且Word没有提升),LoadBehaviorHKLM中的值不会更改为0x10,0x9而是通过在HKCU配置单元中创建LoadBehavior密钥(带值0x9)来覆盖.

不幸的是,我们发现,这个HKCU重写值不考虑,除非清单关键是存在于HKCU蜂巢沿LoadBehavior).有关此相关主题的更多信息:https://social.msdn.microsoft.com/Forums/vstudio/en-US/3776734b-333e-423b-9c08-7c7a441c3e94/load-behavior-and-word-addin?forum=vsto

这个问题的"明显"补救措施是Manifest在安装时每个用户第一次运行插件时为每个用户(以及HKLM)写入HKCU .但是这种方法有一些严重的缺点:

  • 卸载插件需要删除每个用户HKCU值以防止用户遇到加载问题(这不建议使用并引发其他问题/复杂性,例如需要使用Active Setup - 在每台计算机上安装时删除HKCU下的注册表项).
  • 在(漫游)HKCU配置单元中具有这些值的用户在登录到未安装插件的同一域中的计算机时会遇到问题.

难道不是从HKLM获得清单中的错误,其中LoadBehavior适当地设置在HKCU?我认为如果LoadBehaviorHKLU中的HKLM可以被覆盖而不需要Manifest覆盖价值,那么这个问题就会得到解决.

有谁知道克服这个问题的方法?

vsto ms-word ms-office word-addins

17
推荐指数
1
解决办法
1283
查看次数

标签 统计

ms-office ×1

ms-word ×1

vsto ×1

word-addins ×1