Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms word Word 2007/2010:访问Microsoft.Office.Interop.Word.Document.SaveFormat属性导致Word崩溃_Ms Word_Vsto_Ms Office_Office Pia - Fatal编程技术网

Ms word Word 2007/2010:访问Microsoft.Office.Interop.Word.Document.SaveFormat属性导致Word崩溃

Ms word Word 2007/2010:访问Microsoft.Office.Interop.Word.Document.SaveFormat属性导致Word崩溃,ms-word,vsto,ms-office,office-pia,Ms Word,Vsto,Ms Office,Office Pia,我们正在尝试访问Microsoft.Office.Interop.Word.Document实例的SaveFormat属性(我猜它在技术上是DocumentClass实例,因为Document是一个接口)。在尝试读取SaveFormat时,Word会意外崩溃。在try..catch块中包装访问也是不好的;控件被传递给另一个程序集,该程序集决定终止应用程序,而不是抛出异常让我重新捕获 无论我只是在代码中读取属性,都会发生这种情况,如下所示: WdSaveFormat saveFormat = th

我们正在尝试访问Microsoft.Office.Interop.Word.Document实例的SaveFormat属性(我猜它在技术上是DocumentClass实例,因为Document是一个接口)。在尝试读取SaveFormat时,Word会意外崩溃。在try..catch块中包装访问也是不好的;控件被传递给另一个程序集,该程序集决定终止应用程序,而不是抛出异常让我重新捕获

无论我只是在代码中读取属性,都会发生这种情况,如下所示:

WdSaveFormat saveFormat = this.document.SaveFormat; // document is a Microsoft.Office.Interop.Word.Document
或者当我使用调试器访问手表中的属性时

我怀疑文档实例本身是好的;它的其他属性(例如路径)可以反映在上。在document对象上运行quickwatch会产生看起来合法的值,而不是一堆引起红旗的“无法计算”、“null”等值。我可以在Quickwatch窗口中逐行向下滚动,一旦它变成SaveFormat,它就会爆炸

崩溃发生在Word 2007和Word 2010中

我尝试了嵌入PIA类型和不嵌入它们(引用属性中的“嵌入互操作类型”标志)

我试着引用2007年的PIAs这个词,而不是2010年的版本。同样的行为

我们的项目以.NET4.0为目标,但我也尝试过以3.5为目标。没有变化


有什么想法吗?即将防御我的comp:)

原来该文档是一个零字节文件。我们的方法不好,但如果Word抛出一个有用的异常(类似于在没有打开文档的情况下尝试访问Application.ActiveDocument时发生的情况),而不是仅仅爆炸,那就太好了。哦,好吧,大谜团解决了。:)感谢0xA3提出的可能是文档本身的问题的建议。有没有过这样的想法,忘记了看显而易见的东西?

这种情况是只针对某一特定文档还是针对所有文档?我怀疑问题与您的代码无关,而是与文档或单词installation本身有关。请检查在Word中打开文档时发生的情况,打开VBA编辑器(Alt+F11)并在即时窗口(Ctrl+G打开窗口)中输入
?ActiveDocument.SaveFormat
,然后按Return?。