Word Document.Close и Thread Abort Exception Windows 7 - PullRequest
2 голосов
/ 08 февраля 2012

У меня есть текстовый документ типа 2010 для офиса.

На ленте есть кнопка, которая выполняет некоторую логику. В конце этой логики есть строка вроде:

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 голосов
/ 08 февраля 2012

попробуйте это:

    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());
        }
    }
0 голосов
/ 08 февраля 2012

Похоже, это проблема выгрузки домена AppDomain и возврата из неуправляемого в управляемый код. См. Форумы MSDN , где обсуждается это ThreadAbortExcpetion поведение. Потенциально вам просто нужно обновить VSTO Runtime.

...