私は 3 つのプロジェクトを持つ VS2008 ソリューションを持っています: C++/CLI DLL を使用している C# ASP.NET Web サービスで、ネイティブ C++ DLL の関数を呼び出しています。すべての参照が適切に設定されています。Web サービスの bin フォルダーには、3 つすべての DLL があります。問題は、F5 キーを押すと、ブラウザーのページでFileNotFoundException
HRESULT 0x8007007E から、指定されたモジュールが見つかりませんでしたという通知が表示されることです。
不足しているモジュールは、私のネイティブ DLL です。ASP.NET 開発サーバーは、私の C++/CLI DLL を のどこかにコピー (および使用) します%USERPROFILE%\AppData\Local\Temp\Temporary ASP.NET Files\root
が、ネイティブのものはコピーしません。ネイティブ DLL を C++/CLI DLL と同じフォルダーに手動でコピーすると、Web サービスをデバッグできます。しかし、このコピーは正しくないようです。
ネイティブ DLL を PATH のどこかにコピーするのも、他の開発者が覚えておく必要があるため、適切ではありません。
ここに同様の質問があり、1 つの回答にリンクされているブログ投稿があります。与えられた解決策では、DLL を遅延ロードするように変更する必要があります。これは、開発のハードルのために最終製品を変更する必要があるため、中途半端な回避策のように思えます。
Web サービス、C++CLI DLL、およびネイティブ DLL の組み合わせをデバッグする適切な方法はありますか?