Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 33299|Respuesta: 2

[.NET Core] Las nuevas funciones de .NET Core lanzan un ejecutable de un solo archivo

[Copiar enlace]
Publicado el 28-9-2019 16:38:47 | | | |
Hace unos días, Microsoft lanzó .NET Core 3.0, y una de las mayores mejoras es el soporte para aplicaciones de escritorio de Windows (solo Windows). Utilizando el SDK .NET Core 3.0 Windows Desktop Component, puedes portar aplicaciones de Windows Forms y Windows Presentation Foundation (WPF). Para que quede claro, los componentes de escritorio de Windows son compatibles y solo están incluidos en Windows.

Dirección de descarga del SDK:El inicio de sesión del hipervínculo es visible.

Enlaces para introducir las funciones de .NET Core:

El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.

Entre las características se encuentran las siguientes:

  • Utiliza C# para crear aplicaciones web cliente interactivas y completas.
  • Utiliza gRPC para crear servicios de backend de alto nivel.
  • SignalR ahora soporta reconexión automática y flujos cliente-servidor.
  • Utiliza la documentación de OpenAPI para generar código cliente fuertemente tipado para APIs web.
  • El enrutamiento de endpoints está integrado a través del framework.
  • Kestrel tiene HTTP/2 activado por defecto.
  • API web integrada y soporte para autenticación de aplicaciones de una sola página.
  • Se admiten certificados y autenticación por Kerberos.
  • Integra el nuevo serializador System.Text.Json.
  • El nuevo alojamiento universal establece servicios gestionados comunes como la inyección de dependencias, la configuración y el registro.
  • Una nueva plantilla de Servicio al Trabajador para construir servicios a largo plazo.
  • Se crean nuevos EventCounters para solicitudes por segundo, total, actuales y fallidas.
  • Los errores de inicio alojados en IIS ahora se reportan al Registro de Eventos de Windows.
  • Solicitar integración de pipeline System.IO.Pipelines.
  • Mejoras de rendimiento en toda la pila tecnológica.

Creemos un nuevo proyecto de consola .NET Core 3.0 con VS 2019, como se muestra en la figura de abajo:



Referenciando el paquete Newtonsoft.Json, escribe unas pocas líneas de código, de la siguiente manera:


Hacemos clic derecho en VS Regenerate, luego abrimos el directorio bin del proyecto y vemos que se generarán varios archivos, incluyendo archivos :demo1.exe y Newtonsoft.Json.dll.



Publicar un ejecutable de un solo archivo

Método 1:

Ejecuta el siguiente comando en el directorio del proyecto:



Abrimos la carpeta C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64, y veremos que se generan muchos archivos dll y hay una carpeta de publicación.

Ve a la carpeta de publicación,El tamaño del demo1.exe de visualización es 66M, que es el mismo tamaño que todos los archivos fuera de la carpeta, como se muestra en la figura siguiente:



El único archivo ejecutable generado contiene en realidad el entorno necesario para la ejecución del programa, y no requiere que el ordenador objetivo instale el SDK, y la desventaja es que el tamaño del archivo será muy grande.

Método 2:

Haz clic derecho frente a editar el archivo del proyecto y añadir la configuración del nodo PublishSingleFile, el código es el siguiente:

Luego haz clic derecho y haz clic en el botón "Publicar".


Enlaces de ensamblador

El SDK .NET core 3.0 viene con una herramienta que puede reducir el tamaño de tu aplicación analizando IL y recortando ensambladores no utilizados.

Las aplicaciones autónomas incluyen todo lo necesario para ejecutar código sin tener que instalar .NET en tu ordenador principal. Sin embargo, muchas veces la aplicación solo necesita una fracción del framework para ejecutarse, y otras bibliotecas no utilizadas pueden eliminarse.

.NET Core ahora incluye una configuración que escanea el IL de tu app usando la herramienta de enlace IL. Esta herramienta detectará qué código es necesario y luego recortará las bibliotecas no utilizadas. Esta herramienta puede reducir significativamente el tamaño de despliegue de algunas aplicaciones.

Para habilitar esta herramienta, utiliza la <PublishTrimmed> configuración de tu proyecto y publica una aplicación autónoma:

.NET Core CLI


Acabamos de generar un archivo de 66M, y tras añadir la configuración,Se convirtió en 35M, reduciendo la ocupación de 30M

Asegúrate de considerar aplicaciones o frameworks que usen reflexiones o características dinámicas relacionadas (incluyendo ASP.NET Core y WPF).Normalmente se daña durante el corteEsta corrupción ocurre porque el enlazador no es consciente de este comportamiento dinámico y no puede determinar qué tipos de tramas son necesarios para la reflexión。 La herramienta de enlace IL puede configurarse para detectar esta situación.

Lo más importante es asegúrate de aplicarlo después de cortarloRealizar pruebas


(Fin)






Anterior:Resolver que ajax no puede asignar valores a variables externas
Próximo:El lenguaje C es tan poderoso, ¿en qué idioma está escrito?
Publicado el 29-9-2019 09:30:44 |

Gracias por compartir
 Propietario| Publicado el 30-10-2019 09:14:15 |
Imagen ReadyToRun
Se puede mejorar compilando el conjunto de aplicaciones en el formato ReadyToRun (R2R). Hora de iniciar la aplicación NET Core.

R2R es una forma de precompilado (AOT). Los binarios R2R mejoran el rendimiento al arrancar al reducir la cantidad de trabajo que los compiladores en tiempo real (JIT) necesitan realizar cuando carga la aplicación. El binario contiene código nativo similar al que generará JIT. Sin embargo, los binarios R2R son más grandes porque contienen código de lenguaje intermedio (IL) (que en algunos casos sigue siendo necesario) y una versión nativa del mismo código. R2R está disponible solo cuando publicas una aplicación autónoma que se dirige a un entorno de ejecución específico (RID), como Linux x64 o Windows x64.



Aquí primero dejamos el comentario y <PublishTrimmed>luego <PublishReadyToRun>añadimos:

Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com