Construir.archivo exe in.NET Core RC2


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

C:\Program Files\dotnet\dotnet.exe 

Solicitud. Y si utilizo el

dotnet run 

Comando en la carpeta, se ejecuta bien también. Pero no veo manera de ejecutar la aplicación sin las herramientas de CLI. NET Core.

El contenido de mi

 bin\Debug\netcoreapp1.0\

La carpeta se ve como esto:

Estructura de carpetas Bin

Como puedes ver no hay. EXE archivo disponible. Sólo el dll.

¿Estoy pasando por alto algo? O hay algo mal con mi proyecto.archivo 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!

Author: Johannes Heesterman, 2016-05-23

5 answers

En realidad hay 2 modelos de aplicaciones en. NET Core:

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

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

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

  • Agregue una sección runtimes para enumerar los entornos que su aplicación tendrá target (e.g win7-x64 or ubuntu.14.04-x64). Puede encontrar la lista completa aquí.
  • Elimina la dependencia Microsoft.NETCore.App. Puede reemplazarlo por este paquete en su lugar: "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": { }
  }
}
 68
Author: Pinpoint,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-23 14:02:06

La respuesta está en la documentación con los pasos completos ahora.

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

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

Para un ejecutable .Archivo EXE, el Despliegue autónomo debe utilizarse.

 11
Author: zwcloud,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-07 22:30:34

Para crear una aplicación ejecutable desde una aplicación de consola.NET Core puede utilizar 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 ha utilizado la configuración predeterminada (New Project -> Console App (.NET Core)), no es necesario modificar ningún archivo de configuración.

 7
Author: Jack Miller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-24 07:59:14

Paso 1: eliminar "type": "platform", del proyecto.json en frameworks sección

Paso 2: agrega la sección de tiempo de ejecución a tu proyecto.json. Nota cada sección está separada por una coma. Añade tu tiempo de ejecución. a continuación se muestra un ejemplo de win 10.

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

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

Paso 4: dotnet pack paso 4: dotnet build -r win10-x64 - o simplemente construir.

Paso 5: puedes notar .exe creado bajo depurar / netcore / win10 /

 4
Author: Shankar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-13 16:36:11

En ASP.NET Core intenta cambiar tu app type a default, en project.json:

"Microsoft.NETCore.App": {
  "type": "default",
  "version": "1.0.0-*"
}
 2
Author: Serj Sagan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-06 02:10:17