Word Document.Close和线程中止异常Windows 7

时间:2012-02-08 14:48:05

标签: c# .net ms-word vsto ms-office

我有一个项目类型office 2010 word文档。

在功能区中有一个按钮,它有一些逻辑。 在这个逻辑的结尾有一行如:

Globals.ThisDocument.Application.ActiveDocument.Close(ref dowdSaveChanges, ref oMissing, ref oMissing);

在Windows XP上,一切正常,但当用户尝试在Windows 7上使用此文档时,这行代码会抛出异常,如:

System.Threading.ThreadAbortException: The thread was beeing aborted. 
   w Document35.WorkflowRibbon.Button1Click(Object sender, RibbonControlEventArgs e) w D:\_DEV\WorkflowCS2_WordTemplatest_Office2010\Document35\WorkflowRibbon.cs:wiersz

可能是什么原因?

2 个答案:

答案 0 :(得分:0)

这似乎是AppDomain卸载和从非托管代码到托管代码返回执行的问题。 See MSDN forums讨论了此ThreadAbortExcpetion行为。您可能只需要更新VSTO运行时。

答案 1 :(得分:0)

试试这个:

    private void Button1Click(object sender, RibbonControlEventArgs e)
    {
        object oMissing = System.Reflection.Missing.Value;
        object dowdSaveChanges = WdSaveOptions.wdDoNotSaveChanges;
        try
        {                
             Globals.ThisDocument.Application.ActiveDocument.Close(ref dowdSaveChanges, ref oMissing, ref oMissing);                
        }
        catch (ThreadAbortException t)
        {
            Globals.ThisDocument.ThisApplication.Quit(ref dowdSaveChanges, ref oMissing, ref oMissing);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }