我有一个项目类型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
可能是什么原因?
答案 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());
}
}