C# 由于仅在调试期间在Outlook 2010中创建文件夹和显示消息框,出现意外且非常奇怪的挂起

C# 由于仅在调试期间在Outlook 2010中创建文件夹和显示消息框,出现意外且非常奇怪的挂起,c#,vsto,add-in,outlook-2010,office-addins,C#,Vsto,Add In,Outlook 2010,Office Addins,对不起,标题是。。。这将轻松赢得“本周最奇怪的事情”。我希望至少有人能给我一个关于如何调查这里发生的事情的提示 当我使用Outlook运行外接程序时,一切都按预期运行,我不会冻结 然而,当我试图在调试模式下从VS10执行同样的操作时,我进入了初始屏幕,并被卡住了。首先,我看到一个加载加载项的flash屏幕。然后它消失了,过了一段时间,它再次出现,保持动画效果(Office2010闪屏上的彩色波浪),并在“处理”文本旁边用点闪烁 我可以取消它并关闭启动屏幕(Outlook在启动屏幕上关闭而不显示)

对不起,标题是。。。这将轻松赢得“本周最奇怪的事情”。我希望至少有人能给我一个关于如何调查这里发生的事情的提示

当我使用Outlook运行外接程序时,一切都按预期运行,我不会冻结

然而,当我试图在调试模式下从VS10执行同样的操作时,我进入了初始屏幕,并被卡住了。首先,我看到一个加载加载项的flash屏幕。然后它消失了,过了一段时间,它再次出现,保持动画效果(Office2010闪屏上的彩色波浪),并在“处理”文本旁边用点闪烁

我可以取消它并关闭启动屏幕(Outlook在启动屏幕上关闭而不显示),因此应用程序显然不会冻结。另外,让我提醒一下,当启动Outlook运行时,一切都能完美运行

现在开始奇怪的部分,抓住你的帽子,因为它真的很奇怪。

当我同时做以下两件事时,只会出现行为

  • 为联系人添加新文件夹(请参见下面的代码#1)
  • 在Outlook中显示欢迎消息(请参见下面的代码#2)
  • 代码#1在代码#2之前执行。如果我跳过(1),挂断就会消失。如果我跳过(2),它也会消失。这两者的混合导致了问题(仅在调试模式下)。我很想得到一些解释,为什么鸭子(不是打字错误——这只鸟是故意的)会发生这种情况

    代码#1:

    代码#2


    我可能知道问题的原因。我只能提供一种变通方法,而不能解释为什么会发生这种情况

    我突然想到,这可能与UI中的一些混乱有关,所以我选择了ALT TAB,结果就是这样。隐藏的消息框。单击它后,程序将继续运行

    不要问我为什么或者如何

    Outlook.Folder contacts = this.Application.Session.GetDefaultFolder(
      Outlook.OlDefaultFolders.olFolderContacts) as Outlook.Folder;
    Outlook.Folder addressBook = contacts.Folders.Add(
      "My AB", Outlook.OlDefaultFolders.olFolderContacts) as Outlook.Folder;
    
    MessageBox.Show("Coolest add-in ever! Gimme $$$!");