亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Word.ApplicationClass.Activedocument 突然出現異常

Word.ApplicationClass.Activedocument 突然出現異常

C#
米脂 2022-07-10 16:07:28
我在 Word VSTO 加載項項目中有這行代碼,它曾經可以工作,但突然不再工作了:Microsoft.Office.Interop.Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;在它按原樣返回Document對象之前,我可以毫無問題地讀取和操作它。但是現在它拋出了一個System.Runtime.InteropServices.COMException異常?!癢ord遇到問題了?!?非常有幫助。異常包含 0x800A13E9 的 HRESULT,到目前為止也沒有幫助我。內存不足還是什么?同上。新行為似乎是在新年前夜左右開始的(不確定,因為過去幾周我沒有使用該插件),它是在安裝插件時開始的,即代碼中沒有任何更改,重新編譯或重新安裝以實現它。我已經重建了項目,認為證書可能已過期或其他原因,但錯誤仍然存在。值得注意的是,我仍然可以訪問 Application 實例的其他屬性。例如,此行不會引發異常:int numDocuments = Globals.ThisAddIn.Application.Documents.Count;但是當我用 迭代Documents集合時foreach,它只是跳過循環,就好像計數為零一樣。我唯一能想到的是 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.dllException thrown: 'System.Security.Cryptography.CryptographicException' in Microsoft.VisualStudio.Tools.Applications.Hosting.dll它們不會阻止加載項加載和運行,但也許它們與問題有關?不知道去年問題出現之前是不是也扔了。然而,我確實有幾個 Excel 加載項在相同版本的 VSTO、Visual Studio 和 Office 上仍然可以正常運行,并且它們在加載時不會引發上述兩個異常。所以這個問題似乎是特定于 Word 的?,F在我嘗試回滾到 Office 365 版本 1810,即 10 月發布的版本,該版本之前肯定有效,所以我認為這可能不是 Office 更新引入的問題。這是另一回事。大概。并不是說它真的對我有多大幫助,但至少我已經排除了這一點。大概。
查看完整描述

3 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

該問題似乎是由 Windows 10 October 2018 更新(或 11 月)觸發的。受影響的客戶具有特殊的 Windows 區域設置:示例:“英語(瑞士)”。

解決方案:
將 Windows 區域設置格式更改為“英語(英國)”或“英語(美國)”

VBA 編輯器也不再適用于受影響的客戶(沒有安裝插件)。在打開過程中直接出現錯誤“Word 遇到問題”(Visual Basic 錯誤 5097)。在 C# 中為 Application.ActiveDocument 發生的相同錯誤



查看完整回答
反對 回復 2022-07-10
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

好吧,回滾到以前版本的 Windows 10(在我的情況下顯然是 1803)解決了這個問題,我目前無法重現它,所以我現在將其標記為已解決。

雖然我仍然不知道這筆交易到底是什么,但我至少在研究中了解到,單擊 Windows 10 中的“檢查更新”按鈕會立即讓你成為 Microsoft 的 beta 測試人員。例如,他們故意將您置于不穩定的更新列車上,沒有任何通知,更不用說警告您即將安裝他們認為尚未準備好發布的更新。

無論如何,我希望他們從我許多小時的嘗試中得到了一些好的遙測數據,這樣我可能會在強制更新時解決問題。如果沒有,我想我會再回來問同樣的問題。至少我會知道從哪里開始尋找原因。


查看完整回答
反對 回復 2022-07-10
?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

根據我的經驗:當我當時關閉活動文檔時,我正在根據活動文檔刷新功能區菜單。如果結束文件是最后一個文件,我無法讀取任何屬性


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


我和你一樣面臨同樣的問題。


每當我關閉任何文件時,我都會檢查


if(Globals.ThisAddIn.Application.Documents.Count = 1){ 

LastActiveDocument = true;

}

當我刷新 Ribbion 菜單時,我會檢查


if(!LastActiveDocument){

// then only read any property of Active document

}


查看完整回答
反對 回復 2022-07-10
  • 3 回答
  • 0 關注
  • 231 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號