13

アセンブリをディスクに保存したり、実行時に反映したりして、アセンブリを手に入れたいと思っています。アセンブリは、サード パーティによってメモリ内に動的に生成されます。

誰もこれを行う方法を知っていますか?

4

3 に答える 3

2

これを試してください(ここにあります):

byte[] dllAsArray;

using (MemoryStream stream = new MemoryStream())
{
    BinaryFormatter formatter = new BinaryFormatter();

    formatter.Serialize(stream, results.CompiledAssembly);

    dllAsArray = stream.ToArray();
}
于 2013-05-15T12:45:23.387 に答える
1

これを行ってからしばらく経ちましたが、DLL を渡すプログラムはCompilerParameters.GenerateInMemory =True を使用していると思います。

ただし、dll は実際には一時フォルダーのディスクに短時間 (実行中または何か...) 保存されるということです。

当時はこれが問題だったことを覚えていますが、今は詳細を取り戻すのに苦労しています。ちょっと待ってください。おそらく、ProcessExplorer または同様のツールを使用して、どのファイルが保存/タッチされたかを確認できます。

于 2013-05-15T12:56:13.907 に答える
0

これは、WinDbg で SOS を使用して行うことができます。

問題はモジュールを見つけることです。

手に入れた場合は、モジュール/アセンブリをファイルにダンプする「SaveModule」コマンドがあります。

幸運を :)

于 2009-12-09T09:18:59.030 に答える