メインアプリケーションウィンドウに「タブ付き」表示がある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'のコードを既にコンパイル/実行しています。
このランタイムエラーが発生する理由は他にありますか?それを解決するために他に何ができますか?
ねえ、おかげであなたの答えは...私はgav eは試みますが、 'PresentationFramework'はすでに' Assemblies'のリストで選択されており、既にプロジェクトのReferencesノードの下にリストされています...他のアイデアや提案はありますか? – someone2088
DLLに例外がスローされたとのメッセージが表示されます。また、「追加情報: '指定されたバインディング制約に一致する' Agent.MainWindow '型のコンストラクタの呼び出しによって例外がスローされました。行番号 '5'と行位置 '5'。InnerExceptionは、WebKitBrowserのインスタンスを作成する場所について不平を言っているようです: 'WebKit.WebKitBrowser browser = new WebKit.WebKitBrowser();' ...しかし、私のコードがどのように宣言したのかを知ることはできません。最後にコードが遵守されて正常に実行されて以来、変更されていません。 – someone2088
アップデートをありがとう、これは私がすでに試したことです...プラットフォームのターゲットは 'x86'に設定されていますが、 'Any CPU'ではなく 'x86'を使用してDebugでビルドしようとしています。私は私のOPで言及した。 – someone2088