gpt4 book ai didi

c# - Word.ApplicationClass.Activedocument 突然出现异常

转载 作者:行者123 更新时间:2023-11-30 15:14:41 25 4
gpt4 key购买 nike

我在 Word VSTO 加载项项目中有一行代码,它曾经可以工作但突然不再工作了:

Microsoft.Office.Interop.Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;

在它只是按预期返回 Document 对象之前,我可以毫无问题地读取和操作它。但现在它抛出一个 System.Runtime.InteropServices.COMException 异常。 “Word 遇到问题。”很有帮助。异常包含 0x800A13E9 的 HRESULT,到目前为止它也没有帮助我。内存不足还是怎么的?同上。

新行为似乎是在除夕前后开始的(不确定,因为过去几周我没有使用该插件),并且它是在插件加载时开始的已安装,即代码中没有任何内容被更改、重新编译或重新安装以实现它。我已经重建了项目,认为可能是证书已过期之类的,但错误仍然存​​在。

可能值得注意的是,我仍然可以访问 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,即 10 月发布的版本,它以前确实有效,所以我认为这可能不是 Office 更新引入的问题。这是另一回事。可能吧。

并不是说它真的对我有很大帮助,但至少我已经排除了这种可能性。可能吧。

最佳答案

问题似乎是由 Windows 10 October 2018 Update(或 11 月)触发的。受影响的客户有特殊的 Windows 区域设置:示例:“英语(瑞士)”。

解决方案:
将 Windows 区域设置格式更改为“英语(英国)”或“英语(美国)”

VBA 编辑器也不再适用于受影响的客户(未安装加载项)。打开时直接出现错误“Word 遇到问题”(Visual Basic 错误 5097)。 Application.ActiveDocument 在 C# 中发生的相同错误

关于c# - Word.ApplicationClass.Activedocument 突然出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54073785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com