OneNote 2013加载项无法加载。怎么调试?

时间:2013-11-16 21:22:16

标签: com office-interop onenote

我正在关注如何创建OneNote加载项的excellent tutorial by Malte Ahrens

最初,我一步一步地跟着它,做了一些更改(只是重命名了类,并在程序集中使用我自己的名字和GUID)信息。由于我正在使用VS2012并且尚未准备好手动滚动WiX安装程序,因此我手动将内置的dll复制到正确的位置,并创建了一个注册表文件以进行必要的输入。我确认他们都在那里,加载OneNote但没有加载项,转到“mange COM addins”部分我看到以下错误:

enter image description here

加载行为:未加载。加载COM加载项时发生运行时错误。

我花了一些时间调试这个,但没有走得太远。所以今天下午我决定重新开始,但是逐字复制他的代码。我只是下载了示例项目,使用了Vdproj to Wix的试用版来创建安装程序并构建了所有内容。

我得到完全相同的错误。

为什么这样好?这意味着什么,最重要的是如何调试问题?

有关我的环境的一些细节以及可能与原始教程不同的地方。

我正在运行Office 2013而且它是64位。他的教程是2010年。这意味着当我加载演示解决方案时,我必须删除不存在的对Onenote 14 Interop的引用并添加v15版本。

就注册表项而言,它们会转到正确的位置,而不是WOW6432注册表节点。我加倍知道这就像我加载OneNote然后刷新HKCR注册表节点的加载项,LoadBehavior切换到0x00000002,(禁用)。

其他可能值得注意的事情。

我已启用OneNote日志记录,但在我的问题上它很安静。

此处还有其他2个帖子看似相似的问题(但Office 2010)herehere,都没有得到回复。第一个人装了一次,但后来不得不手动启动它,我从来没有加载(我没有签署我的装配)第二个人从来没有得到过回应。

正如我所说,即使知道如何进一步调试这也将是一个很好的一步。

编辑:

我已经回去调试我自己的版本,这几乎是相同的,因为我不确定安装程序实际上在做什么,我认为因为它是wix转换器的演示,它只允许我为x86构建

如果我在“启动外部程序”下添加OneNote.exe并在我的加载项上运行调试,当我尝试在OneNote中的“管理COM加载项”下勾选加载项时,我会看到以下行。我担心这一切仍然很绿,所以我不确定这意味着什么。

First-chance exception at 0x00007ffe4f86ab78 in ONENOTE.EXE: 0x800401FD: Object is not connected to server.
First-chance exception at 0x00007ffe4f86ab78 in ONENOTE.EXE: 0x800401FD: Object is not connected to server.
First-chance exception at 0x00007ffe4f86ab78 in ONENOTE.EXE: 0x800401FD: Object is not connected to server.

此外,由于阅读更多,我认为只是将我的dll复制到安装文件夹program files\[manufacturer]\[application](因为我没有安装程序)是不够的。我现在已经针对我的dll执行了此操作

PS C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319> .\RegAsm.exe 

然后又回来了

Microsoft .NET Framework Assembly Registration Utility version 4.0.30319.33440
for Microsoft .NET Framework version 4.0.30319.33440
Copyright (C) Microsoft Corporation.  All rights reserved.

Types registered successfully

我还有什么其他方法可以正确注册dll吗?

1 个答案:

答案 0 :(得分:0)

启用OneNote 2013的日志记录:

创建文件“EnableOneNote2013APILogging.reg”

Windows Registry Editor Version 5.00  

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\OneNote\Options\Logging] 

"EnableLogging"=dword:00000001 

"EnableTextFileLogging"=dword:0000001

"ttidLogObjectModel"=dword:00000001 

"ttidLogObjectModelAddins"=dword:00000001

创建文件“DisableOneNote2013APILogging.reg”

Windows Registry Editor Version 5.00  

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\OneNote\Options\Logging] 

"EnableLogging"=dword:00000000 

"EnableTextFileLogging"=dword:0000000

"ttidLogObjectModel"=dword:00000000 

"ttidLogObjectModelAddins"=dword:00000000 

这基于http://blogs.msdn.com/b/descapa/archive/2006/12/08/debugging-the-onenote-api-enable-logging.aspx,但您需要添加EnableTextFileLogging; - )。

日志文件在%temp%\ OneNote.log

中创建

对于OneNote 2010,将.reg文件中的路径更改为\ 14.0 \而不是\ 15.0 \

相关问题