环境:VS 2015社区版更新3;展望2016; Windows 10 x64;适用于所有人的最新补丁。
使用VSTO和C#创建新的Outlook加载项时,Visual Studio会创建一个空项目。 (由于它只是一个空项目的样板,我不会在这里包含它。)但是,尝试启动这个空项目会导致Outlook立即崩溃:
发生了FatalExecutionEngineError
消息:托管调试助手' FatalExecutionEngineError'已在C:\ Program Files(x86)\ Microsoft Office \ root \ Office16 \ outlook.exe'中检测到问题。
其他信息:运行时遇到致命错误。错误的地址在0x730e1302,在线程0xfb4上。错误代码是0xc0000005。此错误可能是CLR中的错误,也可能是用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括COM-interop或PInvoke的用户封送错误,这可能会破坏堆栈。
我在InternalStartup
和ThisAddIn_Startup
方法上都设置了断点;在被击中之前抛出异常。我也尝试构建为x86,x86_64和Any CPU
,但无济于事。
有人可以给我指导这里出了什么问题吗?
答案 0 :(得分:1)
答案:默认情况下,新的加载项是Debug版本,点击F5会在调试模式下运行它们,这会更慢。这是Outlook的一个问题,它将缓慢的加载项视为本身存在缺陷,将其标记为已损坏,并中止Outlook以便Outlook下次启动它时可以跳过“损坏的”插件。
将我的代码切换到Release版本并进行正常运行,无需调试支持,解决了这个问题。