MSBuild не создает EXE-файл, а компилятор.Ни один из компиляторов Microsoft в настоящее время не поддерживает компиляцию из потока памяти.System.CodeDom создает иллюзию этого, но на самом деле использует диск.
В будущей версии C # есть что-то новое, планируется предоставить функцию «компилятор как сервис».Текущее внутреннее название проекта - Roslyn.Повлияет ли это на процесс сборки, я сомневаюсь, но не имею ни малейшего понятия, как он будет интегрирован с существующим компилятором, если вообще будет.
Одним из ключевых свойств Windows является то, что между памятью и файлами существует лишь небольшая разница.Все, что находится в памяти, также находится в файле, например, в файле подкачки.Память - это только быстрый способ чтения и записи данных файла.Когда вы читаете или пишете файл, вы фактически читаете / записываете память.Кеш файловой системы.Если он достаточно большой, то для большинства проектов C # компилятор будет читать ту же самую память, даже не ударяя по диску.Это замедлится только тогда, когда файл не был прочитан или записан в последнее время.