update run net info dotnet dev .net-core dotnet-cli

.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)