Скомпилируйте несколько проектов dotnet core за один шаг с помощью dotnet cli
предполагая, что эта структура папок
SampleApp
        global.json
        Src  
            Web             
                project.json
                Startup.cs
                ...
            Model
                project.json
                Startup.cs
                ...
как скомпилировать оба проекта с помощью dotnet? (из командной строки, а не в visual studio)
если вы запустите dotnet build на уровне корневой папки вы
не удалось найти файл .. проект.в JSON
Я вижу, что есть это выдающееся улучшение на репо CLI, но это из Feb2.
любой скрипт должен будет принимать зависимости в внимание, прежде чем слепо вызов dotnet на все src суб-папок. 
4 ответов
на dotnet build команда принимает шаблоны glob. Таким образом, вы можете сделать это:
dotnet build Src/**/project.json
нет такого инструмента пока нет. Даже KoreBuild, инструмент, который ASP.NET команда использует, идет вслепую в каждой папке и вызывает dotnet build/pack. 
хорошая вещь, что dotnet build теперь достаточно умен, чтобы не перекомпилировать зависимости, если они не изменились, так что это больше не проблема.
У меня было аналогичное требование. Это мой обходной путь:
@echo off
for /D %%d in (*) do (
    cd %%d  
    cd  
    dotnet restore
    dotnet build
    cd ..
)
exit /b
используйте GNU Make. Я использую его, чтобы строить свои проекты. все, что вам нужно сделать, это создать Makefile в корневой папке проекта. Вы можете вложить Makefiles в каталоги и иметь Makefile верхнего уровня, который запускает подкаталоги. затем вы настраиваете файлы Makefile для каждой папки "подпроекты" и запускаете любой инструмент comandline. с dotnet ограничителя ядро является dotnet ограничителя .
подождать... GNU - "GNU is not Unix" это приложение Unix/Linux... Я запускаю windows. Что ж, хорошая новость в том, что ты можешь это сделать. в Windows. Я использую make.exe через мою установку git-bash (git для windows). Вам нужно будет найти порт cygwin make. (google: "make for git-bash") затем установите его в свой каталог bin в папке cygwin. Вы также можете просто установить cygwin, если вы действительно хотите.
хорошая вещь в использовании Gnu-Make-это универсальность. Поскольку dotnet core является агностиком платформы, каждая среда Mac/FreeBSD / Linux, скорее всего, уже установлена. Добавление его к ваша машина Windows и проекты для меня имеют большой смысл. Поскольку проект теперь может быть построен всеми одинаково.
некоторые из моих проектов должны создавать контейнеры docker с dockerfiles или snap-пакетами, развертываться для тестирования и т. д... Сделать (простите за каламбур) легко.
вот пример простых проектов Makefile. Запуск "make" сам по себе-это как сказать "make all", вы можете настроить команду типа " cd ./ subdir; make ' как один из ваших .фальшивый директивы. (Google: "Makefile documentation")
project_drive?=/c/prj
nuget_repo_name?=Local_Nuget_Packages
local_nuget_dir?=$(project_drive)/$(nuget_repo_name)
RELEASE_VERSION:= `grep "<Version>" *.csproj | cut -d '>' -f 2 | cut -d '<' -f 1`
.PHONEY: clean release test doc nuget install debug_nuget debug_install
all: doc MSBuild
test:
  ./test.sh
MSBuild: 
   dotnet build
clean:
   dotnet clean; dotnet restore
release: 
   dotnet build -c Release
doc:
   doxygen ./Doxyfile.config
nuget: release
   dotnet pack -c Release
install: 
   cp ./bin/Release/*.$(RELEASE_VERSION).nupkg $(local_nuget_dir)
debug_nuget: MSBuild
   dotnet pack 
debug_install: 
   cp ./bin/debug/*.$(RELEASE_VERSION).nupkg $(local_nuget_dir)