standard para net mac framework .net asp.net-core .net-core package.json .net-core-rc2

.net - para - dot net



Crear archivo.exe en.NET Core RC2 (5)

Cada vez que construyo un proyecto usando las nuevas plantillas .NET Core RC2 no se me proporciona un ejecutable. Archivo EXE . Si presiono F5 para depurar mi aplicación de consola, funciona bien a través del

C:/Program Files/dotnet/dotnet.exe

solicitud. Y si uso el

dotnet run

comando en la carpeta, también funciona bien. Pero no veo forma de ejecutar la aplicación sin las herramientas .NET Core CLI.

Los contenidos de mi

bin/Debug/netcoreapp1.0/

la carpeta se ve así:

Como puedes ver no hay. Archivo EXE disponible. Solo el dll.

¿Estoy pasando por alto algo? ¿O hay algo mal con mi archivo project.json?

{ "version": "1.0.0-*", "buildOptions": { "emitEntryPoint": true }, "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0-rc2-3002702" } }, "frameworks": { "netcoreapp1.0": { "imports": "dnxcore50" } } }

¡Gracias!


En ASP.NET Core intente cambiar su type aplicación a la default , en project.json :

"Microsoft.NETCore.App": { "type": "default", "version": "1.0.0-*" }


En realidad, hay 2 modelos de aplicación en .NET Core:

  • Aplicaciones portátiles : inspiradas en gran medida en las "aplicaciones de consola DNX", estas aplicaciones no producen archivos .exe y, en su lugar, se ejecutan mediante el tiempo de ejecución compartido de .NET Core (cuya versión está definida por el paquete Microsoft.NETCore.App , gracias a su especial type: platform atributo de type: platform ). El tiempo de ejecución correspondiente de .NET Core debe estar instalado en la máquina para poder usar aplicaciones portátiles. Si no se puede encontrar la versión exacta, se dotnet run una excepción al ejecutar dotnet run .

  • Aplicaciones independientes: las aplicaciones independientes son muy similares a las aplicaciones antiguas de consola .NET, ya que producen archivos .exe . El tiempo de ejecución de .NET Core no tiene que instalarse en la máquina, ya que está directamente integrado con la aplicación misma.

Actualmente estás usando el primer modelo. Para usar el modelo independiente, debe ajustar su project.json :

  • Agregue una sección de runtimes para enumerar los entornos a los que se dirigirá su aplicación (por ejemplo, win7-x64 o ubuntu.14.04-x64 ). Puedes encontrar la lista completa here .
  • Elimine la dependencia de Microsoft.NETCore.App . En su lugar, puede reemplazarlo por este paquete: "NETStandard.Library": "1.5.0-rc2-24027" .

Aquí hay un ejemplo de una aplicación independiente:

{ "buildOptions": { "emitEntryPoint": true, "preserveCompilationContext": true, "warningsAsErrors": true }, "dependencies": { "Microsoft.Extensions.Configuration.Binder": "1.0.0-rc2-final", "Microsoft.Extensions.Configuration.CommandLine": "1.0.0-rc2-final", "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final", "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final", "Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final", "Microsoft.Extensions.Logging": "1.0.0-rc2-final", "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final", "NETStandard.Library": "1.5.0-rc2-24027" }, "frameworks": { "net451": { }, "netcoreapp1.0": { "dependencies": { "System.Net.Ping": "4.0.0-rc2-24027" }, "imports": [ "dnxcore50", "dotnet5.6", "portable-net451+win8" ] } }, "runtimes": { "win7-x64": { } } }


La respuesta está en la documentation con los pasos completos ahora.

Puede crear dos tipos de implementaciones para aplicaciones .NET Core:

  1. Despliegue dependiente del marco
  2. Despliegue autónomo

Para un archivo .EXE ejecutable, se debe utilizar la implementación autónoma .


Para crear una aplicación ejecutable desde una aplicación de consola .NET Core, puede usar la herramienta dotnet . Simplemente ejecute en el directorio de su proyecto:

dotnet publish --runtime win7-x64

Esto crea una aplicación independiente (implementación autónoma; incluye todas las bibliotecas necesarias que consumen al menos 60 MB en su disco). Por supuesto, también puede elegir otros tiempos de ejecución, como osx.10.11-x64 o ubuntu.16.04-x64 .

Si utilizó la configuración predeterminada ( New Project -> Console App (.NET Core) ), no es necesario modificar ningún archivo de configuración.


paso 1: elimina "type": "platform", de Project.json en la sección de frameworks

Paso 2: agrega la sección de tiempo de ejecución a tu project.json. Tenga en cuenta que cada sección está separada por una coma. Agregue su tiempo de ejecución. a continuación es solo un ejemplo para ganar 10.

"runtimes": { "win10-x64": {} }

Paso 3: comando de restauración dotnet en su proyecto. (abra cmd, vaya a la carpeta de su proyecto donde esté la carpeta src, ejecute dotnet restor)

paso 4: dotnet pack paso 4: dotnet build -r win10-x64 - o simplemente compilación.

Paso 5: puede notar .exe creado en debug / netcore / win10 /