C# アプリケーションから呼び出されたときに正常に動作する C# クラス ライブラリがあります。ただし、COM Interop もサポートしているため、古い C++ クライアントからも呼び出すことができます。C# クラス ライブラリには、WCF サービス参照が含まれています。WCF 呼び出しは C# 呼び出しから正常に機能しますが、COM 相互運用機能から呼び出すと、次のエラーが表示されます。
"Could not find default endpoint element that references contract 'xxxx' in the ServiceModel client configuration section....."
参照は app.config にあります。より具体的には、DLL をビルドするときにビルドされる .config にあります。C# アプリケーションから呼び出された場合、DLL はこの構成ファイルを探す場所 (つまり、dll と同じディレクトリ) を認識しているため、必要な情報を見つけているようです。ただし、COM Interop から呼び出された場合は、別の場所を探しているようで、見つからないようです。
これを修正して両方のシナリオで機能させる方法を知っている人はいますか?