2

私は、WCF サービスの ASP.NET ホストに取り組んでいます。サービスは C++/CLI ラッパー ライブラリを参照し、それ自体がアンマネージ DLL を参照します。この質問に基づいて、アンマネージ DLL を ASP.NET DLL に組み込みました。次に、次のように抽出します。

string[] dlls = new [] { "myDLL.dll", "myDLLD.dll" };
Assembly assembly = Assembly.GetExecutingAssembly();
string location = Path.GetDirectoryName(assembly.Location);
Dictionary<string, Stream> streams =
    (from dll in dlls
    select new KeyValuePair<string, Stream>(
        dll, assembly.GetManifestResourceStream(typeof(Global), dll)))
    .ToDictionary(p => p.Key, p => p.Value);

foreach (KeyValuePair<string, Stream> stream in streams)
{
    using (FileStream file = new FileStream(Path.Combine(location, stream.Key),
                                            FileMode.Create))
    {
        stream.Value.CopyTo(file);
    }
}

Application_Start()このコードをフォルダーGlobal.asax.csに入れてみましAppInitialize()たが、どちらの場合も、どちらかの関数でブレークポイントがヒットする前にApp_Code、ラッパー DLL またはその依存関係の 1 つをロードできなかったというイエロー スクリーンが表示されます。ブレークポイントをヒットできる唯一の方法は、アンマネージ DLL をシステム パスのどこかに配置することです (例: )。ASP が検索を開始する前に、必要な場所に DLL を取得するにはどうすればよいですか?C:\Windows\system

4

1 に答える 1