最新版本的 Office COM AddIn 加载项代码在哪里?

Where is the latest version of the Office COM AddIn shim code?

我们仍在使用 2010 年推出的 shim 代码(当我们第一次获得 64 位 Office 时)。是否有微软发布的更新版本?

如果有,我在哪里可以找到它?

附加信息:用 C# 编写的加载项,即使已签名,也不会被视为由 Office 签名。 Office 将 AddIn 视为 .NET 包装器 DLL(我认为 mscoree.dll)并正在查看它是否已签名。

所以 Office 团队的某个人编写了一个 C++ 填充程序。它的唯一目的是成为向 Office 注册的加载项,并在加载时调用实际的 .NET 加载项。作为本机 C++ 应用程序,Office 查看它的数字签名以查看插件是否已签名。

最后一个可用的 COMAddin Shim 向导是 2010 年,从那以后我找不到任何可用的东西。 2016年,this综合Shim文章仍引用2010版

但我猜你的问题实际上是关于如何签署插件以便它在 Office 插件对话框中显示为已签名 window?

为此,您需要签署 shim.dll,然后在注册表的 CLSID 项中定位 shim.dll 位置而不是默认的 mscoree.dll。

Office 查找 Software\Microsoft\Office\OFFICEAPPNAME\Addins\[Addin.name] 注册表(或等效的 32 位 WOW6432Node 节点)中列出的所有插件,然后从 HKCR\[Addin.Name]\ 获取 CLSID CLSID,然后在 HKCR\[CLSID] 中加载从那里找到的 dll。当它这样做时,它将识别您的 shim.dll 及其签名,而不是目标计算机上未签名的 .NET mscoree.dll。