Взаимодействие Excel работает на компьютере с Office 2007, но не работает на компьютере с Office 2010

У меня есть приложение C # WPF (.NET 4.0), которое использует взаимодействие Excel для чтения данных из файла Excel.

Когда я запускаю это приложение на моем компьютере для разработки, на котором установлен Excel 2007 год, работает нормально. Когда я запускаю его на другом компьютере, на котором установлен Excel 2010, он выдает следующее сообщение об ошибке:

System.Runtime.InteropServices.COMException (0x80040154): получение фабрики классов COM для компонента с CLSID {00024500-0000 -0000-C000-000000000046} не удалось из-за следующей ошибки: 80040154 Класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Ошибка возникает при попытке создать Microsoft.Office.Interop.Excel Объект .Application , например:

var app = new Application();

В моем проекте есть ссылка на Microsoft.Office.Interop.Excel.dll (версия 14.0. исключение и как его исправить?

Edit

В ответ на ответ Алекса я попытался создать приложение как Any CPU, X86 и X64, но это не имело никакого значения. Я все еще получаю ту же ошибку «класс не зарегистрирован».

Редактировать 2

Только что попробовал приложение на 32-разрядной машине с Office 2010. Ошибок нет. Так что, возможно, что-то не так с конкретной машиной, или это может быть комбинация 64-битной версии и Office 2010.

Редактировать 3

Хорошо, теперь я протестировал ее на другой 64-битной машине. с Office 2010. Опять без ошибок. Я думаю, это означает, что что-то не так с конкретной машиной, и это не вина моего программного обеспечения. Ах, программирование.

9
задан devuxer 19 May 2011 в 10:54
поделиться