1. Herramienta de interfaz de línea de comandos (CLI) de NET Core Lo desactivó project.json y lo reemplazó por un archivo .csproj, que project.json se usaba como archivo de configuración de proyecto en el núcleo .NET temprano, y se estima que Microsoft lo dejó de usar tras descubrir algunos problemas, y MSBuild seguía usándose como herramienta de compilación .net.
MSBuild presenta:https://docs.microsoft.com/zh-cn ... sbuild?view=vs-2017
Cuando realizamos compilación y generación de VS, VS simplemente nos ayuda a llamar a la herramienta MSBuild, lo que significa que cuando compilamos el proyecto .NET no necesitamos instalar la herramienta VS en absoluto.
El comando de la herramienta CLI de .NET Core es el siguiente:
Herramientas de línea de comandos .NET (2.1.301) Uso: dotnet [opciones de ejecución] [ruta hacia la aplicación] Uso: dotnet [sdk-options] [comando] [argumentos] [comando-options]
path-to-application: La ruta a la aplicación .dll archivo a ejecutar.
Órdenes del SDK: nueva inicializa el proyecto .NET. restaurar las dependencias especificadas en el proyecto .NET. ejecuta y ejecuta el proyecto .NET inmediatamente. construir un proyecto .NET. Publish publica un proyecto .NET para su despliegue (incluido el tiempo de ejecución). Pruebas de prueba ejecutan pruebas unitarias usando el ejecutor de pruebas especificado en el proyecto. Empaquetar para crear un paquete NuGet. migrar proyectos basados en project.json a proyectos basados en MSBuild. Salida generada limpia, limpia, limpia. Archivo de Solución de Modificación SLN (SLN). Añade a la referencia. Sácalo del proyecto. Enumera las herramientas que el proyecto menciona o instala. NuGet proporciona comandos adicionales de NuGet. msbuild ejecuta el Microsoft Build Engine (MSBuild). vstest ejecuta la herramienta de línea de comandos Microsoft Test Execution. Almacena el ensamblaje especificado en la memoria de ejecución. herramienta para instalar o usar herramientas que amplíen la experiencia .NET. Build-server interactúa con el servidor que se inicia con la versión de compilación. La ayuda muestra ayuda.
Opciones comunes: -v|--la verbosidad determina el nivel de detalle del comando. Los valores permitidos son Q[UIET], M[inimal], N[Ormal], D[etailed] y diag[nostic]. -h|--ayuda demuestra ayuda.
Ejecuta el comando dotnet — ayuda para obtener más información sobre el comando.
sdk-options: --versión muestra la versión del SDK .NET Core en uso. --info muestra la información de .NET Core. --list-sdks para mostrar el SDK instalado. --list-runtimes muestra el runtime instalado. -d|--diagnostics permite la salida de diagnóstico.
runtime-options: --additionalprobingpath <path> El camino que contiene la política de sonda y el ensamblaje a la sonda. --versión FX <version> de la versión instalada del framework compartido que se usará para ejecutar la aplicación. --roll-forward-on-no-candidate-fx "No Roll Forward to Candidate Shared Framework" está habilitado. --deps adicionales <path> a la ruta a otros archivos de deps.json.
Herramientas adicionales ('dotnet [nombre-herramienta] --ayuda' para más información): Dev-certs Crear y gestionar certificados de desarrollo. ef Entity Framework Herramientas de línea de comandos principales. SQL cache, herramientas de línea de comandos en caché SQL Server. secretos de usuario Gestionar secretos de usuario de desarrollo. Mira Inicia un observador de archivos que ejecuta un comando cuando los archivos cambian.
2. Recopilación y lanzamiento
Publicar un proyecto .NET para su despliegue (incluyendo el tiempo de ejecución). dotnet publish
C:\project\dotnet\test1>dotnet publish --help Uso: dotnet publish [opciones]
Opciones: -h, --ayuda muestra información de ayuda. -o, --output <OUTPUT_DIR> se utiliza para colocar el directorio de salida del elemento publicado. -f, --marco <FRAMEWORK> El marco objetivo a publicar. El marco objetivo debe especificarse en el documento del proyecto. -r, --<RUNTIME_IDENTIFIER>runtime publica el proyecto para un tiempo de ejecución determinado. Úsalo al crear despliegues autónomos. La acción predeterminada es publicar una aplicación que depende del framework. -c, --configuración <CONFIGURATION> se utiliza para generar la configuración del proyecto. El valor predeterminado para la mayoría de los proyectos es "Depurar". --<VERSION_SUFFIX>sufijo-versión-define el valor de la propiedad $(SufijoVersión) en tu proyecto. --manifestar <manifest.xml> Ruta hacia el archivo manifesto destino que contiene una lista de paquetes a ejecutar mediante el paso de publicación. --no-build no construyas el proyecto antes de publicarlo. Implica --no-restauración. --las aplicaciones autónomas que acompañan publican entornos de ejecución .NET Core, eliminando la necesidad de instalar el tiempo de ejecución en la máquina objetivo. Si se especifica un identificador de ejecución, por defecto se pone en "verdadero". --no-restore No realices una restauración implícita mientras ejecutas el comando. -v, --la verbosidad determina el nivel de detalle del comando. Los valores permitidos son Q[UIET], M[inimal], N[Ormal], D[etailed] y diag[nostic]. --no-dependencies establece esta bandera para ignorar referencias de proyecto a proyecto y restaurar solo el proyecto raíz. --fuerza para forzar la resolución de todas las dependencias, incluso si la última restauración ha sido exitosa. Esto equivale a borrar project.assets.json. Desde la perspectiva de la ejecución, los comandos CLI toman sus parámetros y construyen una llamada al MSBuild "original" para establecer las propiedades deseadas y el objetivo deseado a ejecutar. Para ilustrar mejor esto, consulte el siguiente comando:
Este comando publica la aplicación en la carpeta pub usando la configuración Publicar. Internamente, este comando se traduce en la siguiente llamada MSBuild:
Define la plataforma objetivo para tu aplicación
Crea una etiqueta en la sección del archivo csproj (que se usa para definir la plataforma de destino de tu app) <PropertyGroup> <RuntimeIdentifiers> y luego especifica el identificador de ejecución (RID) para cada plataforma objetivo. Ten en cuenta que también se requieren puntos y coma para separar los RIDs. Consulta el Catálogo de Identificadores de Tiempo de Ejecución para ver una lista de identificadores de ejecución. Por ejemplo, la <PropertyGroup> siguiente sección indica que la aplicación funciona en un sistema operativo Windows 10 de 64 bits y en una versión 10.11 de OS X de 64 bits.
Si solo queremos generar una distribución por debajo de la plataforma x64 de win10, podemos ejecutar el siguiente comando:
Carpeta de salida: C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish, toda la carpeta tiene 66M, que es bastante grande, como se muestra en la figura de abajo:
Genera el paquete de lanzamiento bajo la plataforma centos.7-x64, hay 70M, que también es bastante grande, intentemos publicarlo en centos 7 para ejecutarlo (El SDK .NET Core no está instalado en los sistemas CentOS 7)。
La información del sistema es la siguiente:
[root@master ~]# uname -a Linux master 3.10.0-862.el7.x86_64 #1 SMP vie 20 abr 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [root@master ~]# gato /etc/redhat-release CentOS Linux versión 7.6.1810 (Core) Subimos el archivo al directorio temporal e intentamos ejecutar el archivo test1, que puede ser producido normalmente, de la siguiente manera:
[root@master ~]# mkdir temp [root@master ~]# Temp de CD/ [root@master temp]# ./test1 -bash: ./test1: No hay suficientes permisos [root@master temp] # CD .. [root@master ~]# chmod -R 777 temp/ [root@master ~]# Temp de CD/ [root@master temp]# ./test1 ¡Hola mundo! [root@master temp] # eco "http://www.itsvse.com"
http://www.itsvse.com [root@master temp] #
3、. Identificador de ejecución NET Core
.NET Core RID, RID es la abreviatura de Runtime Identifier. Los valores RID se utilizan para identificar la plataforma objetivo en la que se ejecuta la aplicación. Los paquetes .NET los utilizan para representar activos específicos de la plataforma en los paquetes NuGet. Los siguientes valores son ejemplos de RID: linux-x64, ubuntu.14.04-x64, win7-x64 u osx.10.12-x64. Para paquetes con dependencias nativas, el RID especifica la plataforma en la que se puede restaurar el paquete.
<RuntimeIdentifier> Puedes establecer un RID en el elemento del archivo del proyecto. Múltiples RIDs pueden definirse como una <RuntimeIdentifiers> lista (separada por puntos y coma) en los elementos de un archivo de proyecto.
Los RIDs que representan un sistema operativo específico suelen seguir el siguiente patrón: [os]. [versión]-[arquitectura]-[calificativos adicionales]Dónde:
- [OS] es el nombre del sistema operativo/plataforma. Por ejemplo, Ubuntu.
- [versión] es la versión del sistema operativo, que se formatea con un número de versión punto (.). Por ejemplo, 15.10. Las versiones no deberían ser lanzamientos de marketing, ya que normalmente representan múltiples versiones discretas del sistema operativo con diferentes periféricos de API de plataforma.
- [arquitectura] es la arquitectura del procesador. Por ejemplo: x86, x64, arm o arm64.
- [calificativos adicionales] diferencian aún más entre diferentes plataformas. Por ejemplo, AOT o Corert.
Introducción específica:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog
4、. NET Core crea paquetes NuGet
Para .NET Standard y .NET Core, todas las librerías deberían lanzarse como paquetes NuGet. De hecho, así es como se publican y utilizan todas las librerías estándar de .NET. Esto se puede lograr fácilmente usando el comando dotnet pack.
(Fin)
|