Поставляется ли msbuild с компилятором?

Я знаю, что Visual Studio внутри использует инструмент под названием msbuild для компиляции кода C#. Использует ли msbuild csc.exe (поставляемый с .net framework) для компиляции кода? Или Visual Studio поставляется с собственным компилятором?

Обновление (небольшое отклонение от исходного вопроса): Powershell использует типы .net. Итак, powershell также нацелен на csc.exe? Если да, то не означает ли это, что powershell не является чистым скриптом?


person Foo    schedule 24.08.2014    source источник
comment
msbuild не компилирует код C#. msbuild читает .csproj файлов и любит вызывать настоящий компилятор C#, csc, с соответствующими аргументами (параметрами, файлами и т. д.). csc поставляется с платформой .NET.   -  person user703016    schedule 24.08.2014
comment
Связь между MSBuild и .NET Framework имеет изменено. Он больше не поставляется с .NET Framework. Это часть инструментов сборки, которые устанавливаются вместе с VS. Csc также включен в инструменты сборки.   -  person Mike Zboray    schedule 24.08.2014


Ответы (3)


MSBuild использует csc.exe в качестве фактического компилятора использует файлы решения и проекта для сборки проекта.

Также обратите внимание, что csc входит в состав .Net framework.

При создании проекта с помощью интегрированной среды разработки Visual Studio вы можете отобразить команду csc и связанные с ней параметры компилятора в окне вывода. Чтобы отобразить эту информацию, следуйте инструкциям в разделе Как просмотреть, сохранить и настроить файлы журнала сборки, чтобы изменить уровень детализации данных журнала на Обычный или Подробный. После перестроения проекта найдите в окне вывода слово csc, чтобы найти вызов компилятора C#.

person Rahul Tripathi    schedule 24.08.2014
comment
@leppie: - Я понял. Но я подумал, что, поскольку MSBuild использует csc.exe, мы можем сказать это, но да, это технически неправильно. Спасибо за это :) - person Rahul Tripathi; 24.08.2014

Задача CoreCompile, определенная в Microsoft.CSharp.targets, использует задачу CSC для выполнить компиляцию.

person Lee    schedule 24.08.2014

MsBuild — это, по сути, структура планирования сборки, дополняющая компиляторы для управления всеми аспектами сборки. Каждый поддерживаемый язык будет иметь собственный набор логики MsBuild, которая определяет, что происходит при сборке проекта. Для проектов C# логика компилятора будет вызываться из CSharp.Targets, а создание проекта базы данных повлечет за собой использование файла target, установленного с этим дополнением.

person Nicodemeus    schedule 26.08.2014