2016-07-08 3 views
-1

Я создал новое приложение форм Windows C#. Я добавил COM-проект «Библиотека объектов Microsoft Excel 15.0» в свой проект. Этот проект предназначен для импорта данных Excel в набор данных. Я сделал это. Я отлично работаю на своем компьютере. Если я запустил exe-файл на другом компьютере, он покажет ошибку, как показано ниже.C# Приложение Windows не удалось запустить на другом компьютере

ОШИБКА:

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: Error loading type library/DLL (Exception from HRESULT:0x80029C4A(TYPE_E_CANTLOADLIBRARY)).

+0

(пере) установить офис на этой машине , –

+0

Если вы используете interop, вы должны установить ту же версию MS Office на целевых компьютерах. – Jaxedin

+0

Спасибо @Dirk, @ Jaxedin так много, Он решает мою ошибку. Если я хочу запустить приложение во многие системы, это не лучший способ установить ту же офисную версию для всей этой системы. –

ответ

0

COM компоненты не моя специальность, и я не использую их слишком часто. Но я расскажу вам, что я испытал раньше. Обратите внимание, что я испытал это около 6 месяцев назад, и обстоятельства были далеки от идеала на моем рабочем месте.

Чтобы использовать какой-либо COM-компонент (ы), вам также необходимо установить его зависимость на целевом компьютере (в данном случае Excel/Office). Вы проверили, установлен ли на нем целевой компьютер Excel?

Если нет, вы можете использовать соединение OLEDB для чтения файлов Excel. Я не помню, как это делается конкретно.

Может быть, это может помочь в какой-то мере для чтения файлов Excel с использованием OLEDB: http://www.codeproject.com/Tips/705470/Read-and-Write-Excel-Documents-Using-OLEDB

+0

Спасибо за ответ, но мне нужен ответ, используя ссылку com (Microsoft Excel 15.0 Object Library) для доступа к excel. Ссылка, которую вы поделили, весьма полезна –

+0

Как сказал @Jaxedin, у вас должны быть те же библиотеки Office, которые доступны на каждом компьютере, на котором будет запущено ваше программное обеспечение. Если вы не можете этого гарантировать, я предлагаю вам использовать NetOffice http://netoffice.codeplex.com/, это интеллектуальная оболочка приложений MS Office, которая позволяет вам более расслабленные условия, пока вы используете только ресурсы, поддерживаемые всеми установленными версиями , – VBobCat

+0

Спасибо @VBobCat, предложение U r велико, я надеюсь, что обертка Netoffice решит мою ошибку. Я попробую это. –

0

В ваших ссылках proyect, попробуйте установить Copy Local = True в вашей библиотеке DLL

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

  • Нет связанных вопросов^_^