2016-06-01 1 views
0

Я разрабатываю приложение C#, в котором основное окно приложения имеет экран с вкладками, с каждая вкладка предоставляет другую функцию приложения.C# Ошибка выполнения: 'Извлечение фабрики COM-класса для компонента с CLSID не удалось из-за следующей ошибки: указанный модуль не найден

У меня уже есть вкладки для встроенного веб-браузера и страница статуса, отображающая состояние соединения между приложением и удаленным сервером.

Теперь я пытаюсь добавить еще одну вкладку, которая будет действовать как «читатель документов».

Прежде чем я попытался добавить эту функциональность в другую вкладку, я написал полностью отдельное приложение для чтения документов, которое полностью функционирует. Мое намерение теперь «скопировать» C# и XAML из этого рабочего автономного читателя документа в источник для моего основного приложения - добавление разметки XAML на «новую вкладку» и код C# в соответствующий файл .xaml.cs.

В моем автономном приложении для чтения документов я использовал библиотеку MoonPDF для чтения документов PDF, и это работало правильно.

Однако после копирования XAML разметки, и C# код позади в моей существующие приложения, я продолжал получать DLLNotFoundException с, хотя я скопировал все библиотеки DLL для внешней библиотеки в bin папку моего приложения.

Я пробовал работать через это некоторое время, но не мог заставить его работать, поэтому я решил отменить свои изменения.

Однако, когда я теперь пытаюсь запустить мое первоначальное заявление, то, отмену изменений, я получаю XamlParseException, который говорит:

Exception thrown: 'System.Windows.Markup.XamlParseException' in PresentationFramework.dll

Additional information: 'The invocation of the constructor on type 'Agent.MainWindow' that matches the specified binding constraints threw an exception.' Line number '5' and line position '5'.

Когда я Посмотреть подробности »на исключения, и инспектировать InnerException, он говорит:

{"Retrieving the COM class factory for component with CLSID {...} failed due to the following error: 8007007e The specified module could not be found. (Exception from HRESULT: 0x8007007e).":null}

Я не могу увидеть файл PresentationFramework.dll где-нибудь в моей папке корпусного является то, что проблема здесь?

Когда я Google'd ошибку, я наткнулся на следующий вопрос на SO: Retrieving the COM class factory for component with CLSID {XXXX} failed due to the following error: 80040154

Принятый ответ на этот вопрос предполагает, что я должен проверить свойство проекта, что целевая платформа установлен на «x86 '- Я проверил, и это так. Другие два наиболее «опрошенных» ответа предполагают, что я могу использовать 32-битный процесс или DLL, и поэтому мне нужно построить для «x86». Я знаю, что библиотека MoonPDF, которую я использую, 32-битная, и поэтому Я уже компилирую/запускаю свой код для «x86», а не «Any CPU».

Есть ли другие причины, по которым я могу получить эту ошибку времени выполнения? Что еще я могу сделать, чтобы попытаться его решить?

ответ

0

Просто добавьте в ваш проект PresentationFramework.dll, где вы воспользовались исключением. Это можно сделать с помощью пяти этапов:

  1. Щелкните правой кнопкой мыши на проекте в Solution Explorer.
  2. Выбрать Add -> Reference. Откроется диалоговое окно Добавить ссылку.
  3. Тогда Assemblies -> Framework.
  4. Выберите PresentationFramework
  5. Нажмите OK, когда вы выбрали необходимую библиотеку. Выбранная ссылка появится в узле «Ссылки» проекта.

Update:

Изменение визуальных свойств студии проекта:

  1. свойства проекта
  2. На вкладке Построение
  3. целевая платформа = X86
+0

Эй, спасибо за ваш ответ ... я gav e, что попытка, но 'PresentationFramework' уже выбрана в списке' Assemblies', а также уже указана в узле «Ссылки» проекта ... любые другие идеи/предложения? – someone2088

+0

В сообщении об ошибке указано, что исключение было выбрано в DLL, а также указано: 'Дополнительная информация: 'Приведение конструктора в тип' Agent.MainWindow ', которое соответствует указанным ограничениям привязки, создало исключение.' Номер строки «5» и позиция строки «5». «InnerException, похоже, жалуется на то, где я создаю экземпляр WebKitBrowser:' WebKit.WebKitBrowser browser = new WebKit.WebKitBrowser(); '... но я могу Я не вижу никаких проблем с тем, как я это объявил, и не изменил его с тех пор, как мой код выполнил и успешно выполнил. – someone2088

+0

Спасибо за обновление - опять же, это то, что я уже пробовал ... Цель платформы установлена ​​на «x86», и я пытаюсь построить Debug, используя «x86», а не «Any CPU», так как Я упомянул в своем OP. – someone2088

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

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