pages - VS 2015. Establecer el marco de destino correcto para el proyecto web ASP.NET 5
web forms c# ejemplos (2)
Creé un nuevo proyecto ASP.NET 5 MVC en Visual Studio 2015. En el asistente de creación de proyectos, elegí mostrar las plantillas para .NET framework 4.6 y luego, en la siguiente pantalla, seleccioné "Aplicación web" de ASP.NET 5 Preview Plantillas.
Sin embargo, después de la creación, parece que el proyecto solo incluyó "dnx451" y "dnxcore50" en la sección "frameworks" de project.json:
"frameworks": {
"dnx451": { },
"dnxcore50": { }
},
Intenté cambiar "dnx451" a "dnx46". El proyecto se ha construido bien, pero cuando intenté ejecutarlo, recibí el siguiente mensaje de error:
El marco de destino actual de tiempo de ejecución no es compatible con ''...''.
Marco de destino de tiempo de ejecución actual: ''DNX, Versión = v4.5.1 (dnx451)'' Tipo: CLR Arquitectura: x86 Versión: 1.0.0-beta5
¿Cómo es posible cambiar ese "marco de destino" para el proyecto ASP.NET 5?
Aquí está mi global.json ahora:
{
"projects": [
"src",
"test",
"wrap"
],
"sdk": {
"version": "1.0.0-beta5",
"runtime": "clr",
"architecture": "x86"
}
}
pero en realidad no importa lo que se enumera allí. Ya he probado diferentes compilaciones de 1.0.0-beta5 y la última 1.0.0-beta6
El problema es que DNX es consciente de que su proyecto está dirigido a
dnx46
pero IIS no :).
Entonces, IIS está comenzando como .NET 4.5.1 (por defecto) e intenta cargar su proyecto que no es compatible con 4.5.1.
En una versión futura de VS Tooling, haremos un mejor trabajo al detectar eso, pero hasta entonces, las cosas son un poco difíciles para las aplicaciones web que desean apuntar a versiones .NET
superiores a
4.5.1.
Por ahora, sugiero usar
dnx451
hasta entonces (si no depende de la funcionalidad .NET 4.5.2 / 4.6), pero proporcionaré algunas instrucciones a continuación sobre cómo hacer que esto funcione hoy si necesita usar 4.5. 2 o más alto.
Nota:
dnx452
y
dnx46
son
totalmente
compatibles con las aplicaciones de consola y cuando se utilizan servidores distintos de IIS (como Kestrel o WebListener).
Básicamente, todo lo que puede iniciar con el
dnx.exe
arranque nativo
dnx.exe
funciona con
dnx451
y
dnx46
pero los otros entornos de alojamiento (IIS, IIS Express) necesitan sugerencias adicionales para iniciar el marco correcto.
Para que esto funcione hoy, debe establecer una variable de entorno
DNX_IIS_RUNTIME_FRAMEWORK
en el marco de destino que desea utilizar.
Puede hacerlo en la página Propiedades del proyecto para la aplicación web, en la pestaña Depurar.
Simplemente elija el perfil IIS Express y agregue la variable de entorno de la siguiente manera:
Vamos a agregar esto a los problemas conocidos , porque parece que nos lo perdimos, y como dije anteriormente, vamos a mejorar la experiencia predeterminada en VS, por lo que esto no es necesario :).
"DNX_IIS_RUNTIME_FRAMEWORK" : "DNX46"
El valor distingue entre mayúsculas y minúsculas.