2013-11-28 6 views
1

У меня есть приложение для winform C#, скомпилированное для платформы x86, с использованием библиотек interel 2003 COM interop. Проект Visual Studio ссылается на следующие файлы interop для Office 2003)Excel Interop - Тип не зарегистрирован

Microsoft.Office.Interop.Excel.dll (v 11.0.0, specific version = true) Microsoft.Vbe.Interop.dll (v 11.0.0) , specific version = false)

Это приложение отлично работает на большинстве компьютеров с Excel 2003,2007 и 2010, но один из пользователей сообщил об этом ниже.

Это пользователи имеет окна 7 и Офис 2010

System.InvalidCastException: 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: Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)). 

    at Microsoft.Office.Interop.Excel.ApplicationClass.get_Workbooks() 

Из того, что я прочитал, эта проблема может происходит с противоречивыми версиями Office, но, как я специально ссылающийся на 2003 Офис ПОО и их распространение наряду с приложением я не уверен, что может вызвать проблему.

Thanks

+0

Вы видели [это] (http://social.msdn.microsoft.com/Forums/en-US/6b793878-d94a-4a62-8817-dea1cab79377/interopexcel-after-uninstalling-office-2007-and- install-office-2003? forum = vbinterop) –

+0

Да, но в моем сценарии я правильно ссылаюсь на PIA (v11, Excel 2003), который должен использовать клиент – David

+0

. Задерживается ли опция, которую вы можете выполнять? Таким образом, вам не нужно беспокоиться о том, что когда-либо было у версии ПК назначения. –

ответ

2

Реестр пользователя не работает. У него установлен Office или вы никогда не смогли бы создать объект Aplication, но он не имеет записи в разделе реестра Typelib. Требуется, чтобы вызов interop был успешным.

Переустановка Office - разумное и простое решение. Такой вид потерь редко изолирован.

+0

Я попросил пользователя сделать ремонт, мы посмотрим, как это происходит – David

Смежные вопросы