.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 paqueteMicrosoft.NETCore.App
, gracias a su especialtype: platform
atributo detype: 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, sedotnet run
una excepción al ejecutardotnet 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
oubuntu.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:
- Despliegue dependiente del marco
- 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 /