Monodevelop: различия между версиями
(Новая страница: «== Компилятор, используемый monodevelop == monodevelop запускает некий MSBuildBuilder (поставляется с ним в…») |
Нет описания правки |
||
Строка 15: | Строка 15: | ||
Получается, что сборка через monodevelop и msbuild в консоли равнозначна, поскольку msbuild также вызывает csc.exe для сборки, обрабатывая файл .csproj. | Получается, что сборка через monodevelop и msbuild в консоли равнозначна, поскольку msbuild также вызывает csc.exe для сборки, обрабатывая файл .csproj. | ||
msbuild сам подхватит файл, и .sln и .csproj, смотря в каком каталоге проекта запустить. | |||
Если нужно явно управлять типом сборки, Debug или Release: | |||
$ msbuild /p:Configuration=Release | |||
[[Категория:Разработка]] | [[Категория:Разработка]] |
Версия от 14:26, 14 июня 2019
Компилятор, используемый monodevelop
monodevelop запускает некий MSBuildBuilder (поставляется с ним вместе), который постоянно висит в памяти и, как я подозреваю, занимается сборкой. Судя по тому, что во время сборки запускается только /usr/bin/mono-sgen /usr/lib/mono/4.5/csc.exe, я делаю вывод, что он сам берёт на себя роль msbuild, не вызывая его явно.
Упомянутый csc.exe это
$ /usr/bin/mono-sgen /usr/lib/mono/4.5/csc.exe --help Microsoft (R) Visual C# Compiler version 2.8.2.62916 (2ad4aabc) Copyright (C) Microsoft Corporation. All rights reserved.
В то время как mcs это
$ mcs --help Turbo C# compiler, Copyright 2001-2011 Novell, Inc., 2011-2016 Xamarin, Inc, 2016-2017 Microsoft Corp
Как я понимаю, mcs это оригинальный компилятор проекта Mono и он не используется для современных проектов. А csc.exe это компилятор Roslyn из проекта .NET Core, адаптированный для Mono в рамках сливания всех реализаций Mono в одну.
Получается, что сборка через monodevelop и msbuild в консоли равнозначна, поскольку msbuild также вызывает csc.exe для сборки, обрабатывая файл .csproj.
msbuild сам подхватит файл, и .sln и .csproj, смотря в каком каталоге проекта запустить.
Если нужно явно управлять типом сборки, Debug или Release:
$ msbuild /p:Configuration=Release