トップ回答者
C#からCOMの呼び出しでデバッグ実行時のみエラーが出る

質問
-
VisualStudio2008 C#からATLで作成したCOM DLLを呼び出しています。COM DLLは、レジストリに登録せずmanifestを作成して参照しています。手順1 COM DLL用のmanifestを作成する。2 tlbimp.exeツールでプロキシDLLを作成する。3 1で作成したmanifestファイルと2で作成したdllをCOMを使用するプロジェクトで参照設定する。4 ビルドするとアプリケーションのmanifestが自動生成され、dependentAssemblyタグが自動的に追加される。VisualStudioからデバッグ実行したときにCOMオブジェクトを作成する箇所でエラーが発生します。エラーが起こる箇所testCOMLib.AtlCOMClass com = new testCOMLib.AtlCOMClass();エラーメッセージCLSID{xxxx...}を含むコンポーネントのCOMクラスファクトリを取得中に、次のエラーが発生しました:80040154プロジェクトのプロパティ「Visual Studio ホスティングプロセスを有効にする」チェックボックスを外した場合は、問題なく実行できます。また、1 COMのmanifestファイルの参照設定を解除。2 自動出力されたアプリケーションのマニフェストをプロジェクトに追加。3 プロジェクトのプロパティ「アイコンとマニフェスト」でプロジェクトに追加したマニフェストを選択。4 COMのmanifestと、COMのdllをDebugフォルダにコピー(自動的にコピーされなくなったため。)すると追加したマニフェストと同じ内容のxxx.vhost.manifestが自動生成され問題なく実行できます。上記のような回避方法をとらずにデバッグ実行する方法はないのでしょうか?よろしくお願いします。
回答
-
USのConnectを軽く突いたところ、CRTのmanifestでも何か起きているとかいう話が出ていますね。
今回の現象と近いのかどうかを含めて、調査・検証・考察に時間が取れていませんが、一旦書いておきます。
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=371337
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。- 回答としてマーク 高橋 春樹 2009年4月24日 8:24
すべての返信
-
USのConnectを軽く突いたところ、CRTのmanifestでも何か起きているとかいう話が出ていますね。
今回の現象と近いのかどうかを含めて、調査・検証・考察に時間が取れていませんが、一旦書いておきます。
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=371337
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。- 回答としてマーク 高橋 春樹 2009年4月24日 8:24
-
こんにちは。フォーラムオペレータの高橋です。
>Azuleanさん
はじめまして。いつもお世話になっております。
>河原さん
Connectサイトの情報によると、VS2010では再現しない問題という事で終わってますね。
今のところ、河原さんが提示して下さった回避方法で、対応するしかないかもしれません。
ご迷惑をおかけしてすみません。Azuleanさんから頂いた情報に、勝手ながら回答マークを付けさせていただきました。
もし不適切であれば、回答マークを外すことも可能なので、そのときはよろしくお願いします。今後ともMSDNフォーラムをよろしくお願いします。
マイクロソフト株式会社 フォーラム オペレータ 高橋春樹- 編集済み 高橋 春樹 2009年4月24日 8:37 情報の追加