byte[] dllAsArray;
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, results.CompiledAssembly);
dllAsArray = stream.ToArray();
}
Ответ 2
Прошло некоторое время, так как я сделал это, я предполагаю, что программа, которая передает вам DLL, использует CompilerParameters.GenerateInMemory= True.
Тем не менее, однако, что dll действительно сохраняется на диске в некоторой временной папке на короткое время (пока он работает или что-то еще...), потому что так работает компилятор С# (работает?).
Я помню, что это было проблемой для меня в то время, но сейчас у меня проблемы с возвратом деталей, дайте мне понять. Вы можете обнаружить это с помощью ProcessExplorer или аналогичных инструментов, чтобы увидеть, какие файлы были сохранены/затронуты.
Ответ 3
Вы можете сделать это, используя SOS в WinDbg.
Проблема заключается в нахождении модулей.
Если у вас все в порядке, есть команда "SaveModule", чтобы сбрасывать модуль/сборку в файл.