我正在关注如何创建OneNote加载项的excellent tutorial by Malte Ahrens。
最初,我一步一步地跟着它,做了一些更改(只是重命名了类,并在程序集中使用我自己的名字和GUID)信息。由于我正在使用VS2012并且尚未准备好手动滚动WiX安装程序,因此我手动将内置的dll复制到正确的位置,并创建了一个注册表文件以进行必要的输入。我确认他们都在那里,加载OneNote但没有加载项,转到“mange COM addins”部分我看到以下错误:
加载行为:未加载。加载COM加载项时发生运行时错误。
我花了一些时间调试这个,但没有走得太远。所以今天下午我决定重新开始,但是逐字复制他的代码。我只是下载了示例项目,使用了Vdproj to Wix的试用版来创建安装程序并构建了所有内容。
我得到完全相同的错误。
为什么这样好?这意味着什么,最重要的是如何调试问题?
有关我的环境的一些细节以及可能与原始教程不同的地方。
我正在运行Office 2013而且它是64位。他的教程是2010年。这意味着当我加载演示解决方案时,我必须删除不存在的对Onenote 14 Interop的引用并添加v15版本。
就注册表项而言,它们会转到正确的位置,而不是WOW6432注册表节点。我加倍知道这就像我加载OneNote然后刷新HKCR注册表节点的加载项,LoadBehavior切换到0x00000002,(禁用)。
其他可能值得注意的事情。
我已启用OneNote日志记录,但在我的问题上它很安静。
此处还有其他2个帖子看似相似的问题(但Office 2010)here和here,都没有得到回复。第一个人装了一次,但后来不得不手动启动它,我从来没有加载(我没有签署我的装配)第二个人从来没有得到过回应。
正如我所说,即使知道如何进一步调试这也将是一个很好的一步。
编辑:
我已经回去调试我自己的版本,这几乎是相同的,因为我不确定安装程序实际上在做什么,我认为因为它是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吗?
答案 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 \