c#-Word.ApplicationClass.Activedocument中的异常突然
作者:互联网
我在Word VSTO加载项项目中有这行代码,该项目曾经可以工作,但突然不再使用:
Microsoft.Office.Interop.Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;
在它只是按预期返回Document对象之前,我可以毫无问题地阅读和操作它.但是现在它引发了System.Runtime.InteropServices.COMException异常. “ Word遇到了问题.”很有帮助.异常包含HRESULT为0x800A13E9,到目前为止也没有帮助我.内存不足或什么? Idk.
新的行为似乎是在除夕前后开始的(不确定,因为过去两周我没有使用该加载项),并且它是在安装该加载项时开始的,即代码中的任何内容都没有更改,重新编译或重新安装即可实现.此后,我重新构建了该项目,以为证书可能已过期或什么原因,但仍然发生错误.
可能值得注意的是,我仍然可以访问Application实例的其他属性.例如,此行不会引发异常:
int numDocuments = Globals.ThisAddIn.Application.Documents.Count;
但是,当我使用foreach遍历Documents集合时,它只是跳过循环,好像计数为零.
我唯一能想到的是Office(365)的更新破坏了与VSTO相关的功能.但是我什至从哪里开始调试呢?
好的,所以我尝试创建一个新的Word VSTO加载项,不更改默认项目属性,而是使用单个按钮和以下方法添加单个功能区:
private void button1_Click(object sender, RibbonControlEventArgs e)
{
try
{
var x = Globals.ThisAddIn.Application.ActiveDocument;
}
catch (Exception ex)
{
;
}
}
获取ActiveDocument属性时会引发完全相同的异常.但是,我确实注意到,在加载外接程序时还会抛出两个异常,并且在加载原始外接程序时也会引发两个异常(以前可以正常工作):
Exception thrown: 'System.Deployment.Application.DeploymentException' in System.Deployment.dll
Exception thrown: 'System.Security.Cryptography.CryptographicException' in Microsoft.VisualStudio.Tools.Applications.Hosting.dll
它们不会阻止加载项的加载和运行,但是也许它们与问题有关?我不知道它们是否也于去年在问题出现之前被抛出.
但是,我确实有几个Excel加载项,它们在相同版本的VSTO,Visual Studio和Office上仍然可以正常运行,并且在加载时它们不会抛出以上两个异常.因此,该问题似乎特定于Word.
现在,我尝试回滚到十月份发行的Office 365版本1810,该版本以前肯定可以使用,因此我认为这可能不是Office更新引入的问题.这是另一回事.大概.
并不是说它确实对我有很大帮助,但是至少我已经排除了这一点.大概.
解决方法:
Windows 10 October 2018 Update(或11月)似乎触发了此问题.受影响的客户具有特殊的Windows区域设置:例如:“英语(瑞士)”.
解:
将Windows区域设置格式更改为“英语(英国)”或“英语(美国)”
VBA编辑器也不再能为受影响的客户正常工作(没有安装加载项).打开期间直接发生了错误“ Word遇到问题”(Visual Basic错误5097). C#中出现的与Application.ActiveDocument相同的错误
标签:comexception,office365,c,ms-word,vsto 来源: https://codeday.me/bug/20191024/1923651.html