C# VSTO Outlook 2013中功能区的异常行为加载项

C# VSTO Outlook 2013中功能区的异常行为加载项,c#,vsto,outlook-addin,C#,Vsto,Outlook Addin,我有一个Outlook 2013的VSTO加载项。奇怪的是,有时我做了一些看似无关的事情。我的按钮组从它所在的位置消失了。在很长一段时间里,它一直工作得很好。我添加了一个功能区组启动器,它消失了。然后我回滚了挂起的更改,但它仍然不存在 首先,为什么我的ribbon组总是消失,它被设置为Position:AfterOfficeId GroupMailDelete,并且选项卡被设置为TabReadMessage。到目前为止,这对我一直很有效。我在文档中查找了Office 2013中的Office I

我有一个Outlook 2013的VSTO加载项。奇怪的是,有时我做了一些看似无关的事情。我的按钮组从它所在的位置消失了。在很长一段时间里,它一直工作得很好。我添加了一个功能区组启动器,它消失了。然后我回滚了挂起的更改,但它仍然不存在

首先,为什么我的ribbon组总是消失,它被设置为Position:AfterOfficeId GroupMailDelete,并且选项卡被设置为TabReadMessage。到目前为止,这对我一直很有效。我在文档中查找了Office 2013中的Office Id元素,它们是正确的(正如我所说,已经好几个月了)

第二,当我回滚更改时,为什么它不会重新出现?我只是更改了那个文件,当我回滚时,它看起来就像我触摸它之前一样

在我做出改变之前,它一直正常工作。以前测试过,工作过,再次测试过我的ribbon组不见了

我真的受不了这个问题,因为它把我的整个生活都搞砸了。请有人提供帮助,因为其他答案或我发现的任何东西都没有帮助

非常感谢

编辑:


重写程序,复制逻辑并在designer中重做功能区和窗体。注册事件处理程序是一件痛苦的事情,就像构建两个表单一样,一个来自EF,另一个使用原始sql。但除此之外,它现在起作用了。为什么当我重写它时它会工作,但当我回滚破坏性的更改时它仍然不工作?更不用说相同的更改并没有破坏我重写的副本。

功能区消失后,您是否立即查看了正在运行的COM加载项列表?您的外接程序是否作为活动外接程序列在列表中

Microsoft Office应用程序可以禁用行为异常的加载项。如果应用程序未加载外接程序,则应用程序可能已硬禁用或软禁用外接程序

当外接程序导致应用程序意外关闭时,可能会发生硬禁用。如果在外接程序中的启动事件处理程序正在执行时停止调试器,则在开发计算机上也可能发生这种情况

当外接程序产生不会导致应用程序意外关闭的错误时,可能会发生软禁用。例如,如果应用程序在启动事件处理程序执行时引发未经处理的异常,则可能会软禁用外接程序

重新启用软禁用的外接程序时,应用程序会立即尝试加载该外接程序。如果最初导致应用程序软禁用外接程序的问题尚未解决,则应用程序将再次软禁用外接程序。在文章中阅读更多关于这方面的内容

你有任何UI错误吗

有关更多信息,请参阅


最后,您使用什么功能区XML?你能说得更具体些吗?

对于将来研究此问题的任何人,请尝试此链接-此链接对我非常有效:

我有加载项UI错误,没有任何错误。奇怪的是,尽管我重新检查了外接程序,但我的外接程序似乎一直在禁用。禁用外接程序时,功能区UI也会隐藏。这就是丝带消失的原因。您需要调试外接程序,以确保代码中没有任何未经处理的异常。解决此问题的最佳方法是什么?我以前从未调试过VSTO,对此我很迷茫。如果我的加载项被禁用,为什么在向组中添加dialoglauncher后会发生这种情况?为什么回滚更改不能使其再次工作呢?我还使用复制粘贴对逻辑进行重写,并使用可视化设计器对表单进行重写(其中只有3个,尽管很难制作2个)。现在它又起作用了。什么在阻止我的其他程序工作?为什么回滚中断的更改没有帮助?