ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c#-Word.ApplicationClass.Activedocument中的异常突然

2019-10-24 22:07:19  阅读:489  来源: 互联网

标签:comexception office365 c ms-word vsto


我在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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有