调试时出现Visio 2010加载项错误:检测到DisconnectedContext

时间:2013-01-30 13:34:19

标签: c# .net vsto add-in visio

我的(VSTO)Visio 2010加载项存在一个非常奇怪的问题。 AddIn顺序处理许多visio vsd文件。我基本上做的是通过给定文件夹中的所有vsd文件循环。对于此文件夹中的每个vsd文件,我执行openEx(..)然后循环遍历此文件中的所有Shape-Objects。我从每个形状读取数据,并为特定形状扩展功能(将形状单元格添加到形状)。然后我做visioDiagram.save()和visioDiagram.close()。然后我打开下一个vsd文件并为它做同样的事情。当我在Visual Studio 2010中调试时,AddIn运行大约400个文件,每次在文件400或415之间运行,在我保存()并关闭()实际的visio图并尝试打开下一个图之后,会出现以下消息:

  

检测到DisconnectedContext

     

消息:上下文0x3f4fc8'已断开连接。释放接口   从当前上下文(上下文0x3f5138)。这可能会导致腐败   或数据丢失。为避免此问题,请确保全部   上下文/公寓保持活跃,直到应用程序完成   使用表示COM组件的RuntimeCallableWrappers   活在他们身边。 (上下文0x3f5138)。这可能会导致损坏或数据   失利。为避免此问题,请确保全部   上下文/公寓保持活跃,直到应用程序完成   使用表示COM组件的RuntimeCallableWrappers   活在他们身上。

伪代码:

Foreach (visioFile in visioFiles)
{
openedVisioFile = Visio.Documents.openEx(visioFile.vsd,..)
    Foreach(visioShape in openedVisioFile.Shapes)
{
   Read shape properties;
   Write properties in a dictionary;    
}
openedVisioFile.save();
openedVisioFile.close();
}

0 个答案:

没有答案