Один из способов сделать это - использовать « msbuild », который представляет собой движок с открытым исходным кодом , который Visual Studio использует для создания приложений.Файлы проекта (.csproj) в основном содержат различные конфигурации сборки в формате XML, который используется этим движком при сборке нашего проекта.С помощью msbuild вы можете построить свой проект следующим образом:
msbuild.exe MyProj.proj /property:Configuration=Debug
Он также имеет множество других опций и переключателей, которые помогают создавать проекты вручную (см. this )
В случае, если из-за соображений производительности вам приходится собирать вручную или выборочно, я бы хотел упомянуть, что есть возможность создавать несколько проектов параллельно, чтобы ускорить процесс.Существует переключатель «maxcpucount», который мы можем использовать для определения «msbuild» максимального количества проектов, которые могут быть построены параллельно (см. this ).Вы можете использовать его следующим образом:
msbuild.exe myproj.proj /maxcpucount:3
Вот еще несколько свойств, которые можно использовать для лучшего управления памятью (см. this )
Если вы хотите скомпилировать отдельныефайлы в исполняемые файлы ( .exe ) или библиотеки ( .dll ), вы можете использовать компилятор CSharp ( csc ).Его можно использовать следующим образом:
Компилирует File.cs, создающий File.exe:
csc File.cs
Компилирует File.cs, создающий File.dll:
csc -target:library File.cs
КомпилируетFile.cs и создает My.exe:
csc -out:My.exe File.cs
Компилирует все файлы C # в текущем каталоге с включенной оптимизацией и определяет символ DEBUG.Вывод File2.exe:
csc -define:DEBUG -optimize -out:File2.exe *.cs
Компилирует все файлы C # в текущем каталоге, создавая отладочную версию File2.dll.Логотип и предупреждения не отображаются:
csc -target:library -out:File2.dll -warn:0 -nologo -debug *.cs
Компилирует все файлы C # в текущем каталоге в Something.xyz (DLL):
csc -target:library -out:Something.xyz *.cs
Подробнее здесь
Однако я не рекомендовал бы компилировать каждый файл вручную.Это можно сделать, используя команды, упомянутые выше, но для этого потребуется написать очень длинный скрипт оболочки.