В любом случае, я надеюсь, что они получили хорошую телеметрию от многих, многих часов, пытаясь сделать все, что я мог придумать, так что, возможно, проблема будет решена к тому времени, когда обновление будет навязано мне. Если нет, то я вернусь, чтобы снова задать тот же вопрос. По крайней мере, я буду знать, где начать искать причину.

я есть одна строка кода в проекте надстройки Word VSTO, которая раньше работала, но внезапно перестала работать:

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

Прежде чем он только что вернулсяDocument объект, как он должен был, и я мог читать и манипулировать им без проблем. Но теперь он бросаетSystem.Runtime.InteropServices.COMException исключение. «Слово столкнулось с проблемой». Очень полезно. Исключение содержит HRESULT 0x800A13E9, который мне пока не помог. Недостаточно памяти или что-то? ИДК.

Новое поведениекажется начать в канун Нового года (не уверен, так как я не использовал надстройку в течение последних нескольких недель), и он начался, когда надстройка была установлена, т.е. ничего в коде не было изменено, перекомпилировано или переустановлено чтобы это произошло. С тех пор я перестроил проект, думая, что срок действия сертификата истек или что-то в этом роде, но ошибка все равно возникает.

Возможно, стоит отметить, что я все еще могу получить доступ к другим свойствам экземпляра приложения. Например, эта строка не выдает исключение:

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.dll
Exception thrown: 'System.Security.Cryptography.CryptographicException' in Microsoft.VisualStudio.Tools.Applications.Hosting.dll

Они не препятствуют загрузке и запуску надстройки, но, может быть, они все равно связаны с проблемой? Я не знаю, были ли они также брошены в прошлом году до того, как появилась проблема.

Однако у меня есть пара надстроек Excel, которые по-прежнему работают с той же версией VSTO, Visual Studio и Office, и они не выдают два вышеупомянутых исключения при загрузке. Так что проблема, кажется, специфична для Word.

И теперь я попытался откатиться до версии 3610 Office 365, октябрьского выпуска, который определенно работал раньше, поэтому я думаю, что этовероятно не проблема, представленная обновлением Office. Это что-то еще. Вероятно.

Не то чтобы это мне очень помогло, но я, по крайней мере, исключил это. Вероятно.