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:
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!
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 paqueteMicrosoft.NETCore.App
, gracias a su atributo especialtype: 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 corriendodotnet 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.gwin7-x64
orubuntu.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": { }
}
}
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:
- Implementación dependiente del marco
- Despliegue autónomo
Para un ejecutable .Archivo EXE, el Despliegue autónomo debe utilizarse.
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.
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 /
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-*"
}
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