Понимание ошибок COM с помощью Microsoft.Office.Interop.Excel на разных платформах сборки в .NET Framework 4.7.2C#

Место общения программистов C#
Anonymous
Понимание ошибок COM с помощью Microsoft.Office.Interop.Excel на разных платформах сборки в .NET Framework 4.7.2

Сообщение Anonymous »

У меня есть проект .net framework 4.7.2, в котором используется nuget Microsoft.Office.Interop.Excel, который выдает ошибку в версии Office 2021.

Код: Выделить всё

Unable to cast COM object of type 'Microsoft.Office.Interop.Excel.ApplicationClass' to interface type 'Microsoft.Office.Interop.Excel._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D5-0000-0000-C000-000000000046}' failed due to the following error: Element not found. (Exception from HRESULT: 0x8002802B (TYPE_E_ELEMENTNOTFOUND)).
Я обнаружил, что восстановление Office решает проблему, но я хочу понять, почему эта ошибка возникает на разных платформах сборки без восстановления Office.
Сведения о среде:
ОС: 64-разрядная версия
Office: 64-разрядная версия (без восстановления)
Замеченное поведение:
Когда для платформы сборки установлено значение x64, я получаю исключение COM. Если установлено значение x86 или Любой процессор (если для параметра Prefer32Bit установлено значение False), ошибки не возникает.
Вот мой вопрос: почему ошибка возникает именно на платформе сборки x64, хотя это не так. не происходит с x86 или любым процессором (без параметра Prefer32Bit, установленного в значение True)?

Подробнее здесь: https://stackoverflow.com/questions/788 ... rent-build

Вернуться в «C#»