我正在添加日历文件夹,如下所示(C#):
folder = parentFolder.Folders.Add(name, Outlook.OlDefaultFolders.olFolderCalendar);
有时(没有可见的模式,它非常随机),该文件夹出现在Outlook日历列表中,有时它不会。我说这是五十五十岁。当我创建多个文件夹时,它可能会连续第1个,第3个或第2个失败。再一次,没有模式。
如果我重新启动Outlook,则丢失的文件夹最终会显示在日历列表中。此外,这些丢失的文件夹无法以编程方式添加到导航组(COMException with"稍后再试,#34;文本发生)。
当我在调试窗口中检查并比较新创建的Outlook.Folder的属性时,我发现它们对于那些没有问题但是没有的是相同的。特别是,DefaultItemType和DefaultMessageClass与完整日历文件夹相同。
同时,这些文件夹确实出现在Outlook文件夹列表中(您可以通过单击" ..."按钮然后"文件夹"在上下文菜单中访问)。可以在那里选择它们,查看它们的内容等。但它们的图标显示为普通文件夹,而不是日历文件夹。此外,在右键单击菜单上,我会看到特定于普通文件夹的操作,例如" IMAP文件夹"。 Outlook重新启动后,其图标将更改为日历的图标。
C1和其他两个文件夹从一开始就很好,其他几个(如t2) - 有这个问题。
所有8个文件夹在相同的条件下同时在相同的循环中使用相同的代码创建。
因此,看起来有时Outlook会创建一个文件夹,但不会将其状态指定为日历(更准确地说,此分配会延迟到Outlook重新启动)。它绝对是断断续续的。
这可以以某种方式解决吗?为了强迫" Outlook立即为文件夹分配日历状态?
这个问题似乎是针对Outlook 2016的,2010年的版本从未发生同样的情况。老实说,它看起来像Outlook中的一个错误,但无论如何我需要解决它,并希望有人可能会提出任何建议。
编辑:即使我使用MFCMAPI工具创建文件夹,也没有涉及任何VSTO插件或Outlook COM API,问题也会重现。当然是Outlook 2016中的一个错误。
即使使用“新建日历”命令直接在Outlook UI中创建日历,有时也会发生。