Можно ли скомпилировать проект С# без MSBuild?

Я работаю над приложением развертывания, которое публикует (создает и создает выход) проектов С# и выполняет другие работы.

MSBuild не удобен. Итак, я подумал о создании своего собственного механизма сборки.

Я знаю, что можно использовать компилятор С# для компиляции простого файла sample.cs в DLL файл. Но могу ли я полностью скомпилировать проект без MSBuild?

Ответ 1

Да, вы можете использовать csc (компилятор С#) полностью для компиляции исходного кода. Проблема в том, что вы должны все самостоятельно.

Так как MSBuild может интерпретировать файлы sln и csproj и понимает различные действия, которые необходимо предпринять, ссылки на использование и где их найти, гораздо проще в использовании, чем csc. Например: существуют некоторые задачи, специфичные для надстроек Office. MSBuild знает, как выполнять их из своих удаленных целевых файлов. Вы этого не сделаете, поэтому, если вы хотите использовать их, вам нужно сделать все действия самостоятельно. Возможно, немного сложно, если вы хотите скомпилировать очень сложные проекты.

Это может помочь использовать Roslyn для настройки ваших компиляционных инструкций и фактического компиляции кода. Вам все еще нужен способ указать все параметры.

Ответ 2

Как уже упоминалось в этом ответе, вы можете использовать другие механизмы сборки, чтобы убедиться, что они соответствуют вашим потребностям или нет. Два из них - Microsoft.Build и Make for Windows