2016-06-01 21 views
0

メインアプリケーションウィンドウに「タブ付き」表示があるC#アプリケーションを開発しています。各タブはアプリケーションの異なる機能を提供します。C#ランタイムエラー: 'CLSIDのコンポーネントのCOMクラスファクトリを取得できませんでした。指定されたモジュールが見つかりませんでした。

私は既に組み込みのWebブラウザのための作業用のタブと、アプリケーションとリモートサーバー間の接続のステータスを表示する 'ステータス'ページを持っています。

「ドキュメントリーダー」として機能する別のタブを追加しようとしています。

この機能を別のタブに追加しようとする前に、完全に機能する完全に別の「ドキュメントリーダー」アプリケーションを作成しました。 XAMLマークアップを「新しいタブ」に追加し、C#コードを対応する.xaml.csファイルに追加することで、この作業スタンドアロンのドキュメントリーダーからC#とXAMLをメインアプリケーションのソースに「コピー」することになります。

私のスタンドアロンのドキュメントリーダーアプリケーションでは、PDFドキュメントを読むためにMoonPDFライブラリを使用していましたが、正常に動作していました。

しかし、私のアプリケーションのbinフォルダに外部ライブラリのすべてのDLLをコピーしたにもかかわらず、XAMLマークアップとC#コードを既存のアプリケーションにコピーした後、私はDLLNotFoundExceptionを手に入れました。

私はしばらくの間これを試してみましたが、うまく動作していないようでしたので、変更を元に戻すことに決めました。 、

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を検査する場合:

はしかし、私は今、私の元のアプリケーションを実行しようとすると、変更を元に戻すた、私が言うどのXamlParseExceptionを取得しますそれは言う:

{"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の「に設定されていることを、私はプロジェクトのプロパティをチェックする必要がありますことを示唆しています' - 私は点検した、そしてそれはある。私が使用しているMoonPDFライブラリが32ビットであることを認識しています。そうすれば、私は、32ビットプロセスまたはDLLを使用している可能性があります。 '任意のCPU'ではなく 'x86'のコードを既にコンパイル/実行しています。

このランタイムエラーが発生する理由は他にありますか?それを解決するために他に何ができますか?

答えて

0

例外を除いたプロジェクトにPresentationFramework.dllを追加するだけです。

  1. プロジェクトのマウスを右クリックSolution Explorerで右クリックします。
  2. Add -> Referenceを選択します。 [参照の追加]ダイアログボックスが開きます。
  3. 次にAssemblies -> Framework
  4. 選択PresentationFramework
  5. 必要なライブラリを選択したら、[OK]をクリックします。 プロジェクトの参照ノードに、選択した参照が表示されます。

更新:Visual Studioのプロジェクトのプロパティで

変更:[ビルド]タブで

  1. プロジェクトのプロパティ
  2. プラットフォームターゲット= X86
+0

ねえ、おかげであなたの答えは...私はgav eは試みますが、 'PresentationFramework'はすでに' Assemblies'のリストで選択されており、既にプロジェクトのReferencesノードの下にリストされています...他のアイデアや提案はありますか? – someone2088

+0

DLLに例外がスローされたとのメッセージが表示されます。また、「追加情報: '指定されたバインディング制約に一致する' Agent.MainWindow '型のコンストラクタの呼び出しによって例外がスローされました。行番号 '5'と行位置 '5'。InnerExceptionは、WebKitBrowserのインスタンスを作成する場所について不平を言っているようです: 'WebKit.WebKitBrowser browser = new WebKit.WebKitBrowser();' ...しかし、私のコードがどのように宣言したのかを知ることはできません。最後にコードが遵守されて正常に実行されて以来、変更されていません。 – someone2088

+0

アップデートをありがとう、これは私がすでに試したことです...プラットフォームのターゲットは 'x86'に設定されていますが、 'Any CPU'ではなく 'x86'を使用してDebugでビルドしようとしています。私は私のOPで言及した。 – someone2088

関連する問題

 関連する問題