.net core - run - Compile mĂșltiples proyectos de dotnet core en un solo paso usando dotnet cli
dotnet update (4)
El comando dotnet build
acepta patrones globales. Así que puedes hacer esto:
dotnet build Src/**/project.json
Asumiendo esta estructura de carpetas
SampleApp
global.json
Src
Web
project.json
Startup.cs
...
Model
project.json
Startup.cs
...
¿Cómo se compilan ambos proyectos usando dotnet
? (desde la línea de comandos, no en el estudio visual)
Si ejecuta la dotnet build
en el nivel de la carpeta raíz, obtendrá
No se pudo encontrar el archivo ... proyecto.json
Puedo ver que hay una mejora sobresaliente en el repositorio de CLI, pero eso es desde el 2 de febrero.
Cualquier secuencia de comandos tendría que tener en cuenta las dependencias antes de llamar ciegamente a dotnet
en todas las subcarpetas src
.
Tenía un requisito similar. Esta es mi solución:
@echo off
for /D %%d in (*) do (
cd %%d
cd
dotnet restore
dotnet build
cd ..
)
exit /b
Todavía no hay una herramienta así. Incluso KoreBuild , la herramienta que usa el equipo de ASP.NET, va a ciegas en cada carpeta e invoca la dotnet build/pack
.
Lo bueno es que la dotnet build
ahora es lo suficientemente inteligente como para no volver a compilar las dependencias si no han cambiado, por lo que ya no es un problema.
Utilice GNU Make. Lo uso para construir mis proyectos. Todo lo que tienes que hacer es crear un Makefile en la carpeta raíz de tu proyecto. Puede anidar Makefiles en directorios y tener un Makefile de nivel superior que ejecute los subdirectorios. luego, configura Makefiles para cada una de tus carpetas de "Sub Proyectos" y ejecutas cualquier herramienta de línea de comandos. con dotnet el núcleo es dotnet.
Espera ... GNU: "GNU no es Unix", es una aplicación Unix / Linux ... ejecuto Windows. Bueno, la buena noticia es que puedes hacer esto en Windows. Estoy usando make.exe a través de mi instalación de git-bash (git para Windows). Tendrás que ir a buscar el puerto cygwin de make. (google: "make for git-bash") Luego instálelo en el directorio bin de la carpeta cygwin. También puedes instalar cygwin si realmente quisieras.
Lo bueno de usar Gnu-Make es que es universal. Dado que dotnet core es independiente de la plataforma, todos los entornos Mac / FreeBSD / Linux tienen "make" muy probablemente ya instalados. Añadirlo a su máquina Windows y los proyectos para mí tiene mucho sentido. Dado que tu proyecto ahora puede ser construido por todos de la misma manera.
algunos de mis proyectos necesitan construir contenedores docker con archivos docker, o paquetes instantáneos, desplegar para probar, etc. ... Make (perdón el juego de palabras) lo hace fácil.
Aquí hay una muestra de proyectos simples de Makefile. Ejecutar ''make'' por sí mismo es como decir ''make all'' podría configurar un comando como ''cd ./subdir; Hacer ''como una de sus directivas .phoney. (Google: "documentación de Makefile")
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)