tutorial pages net mvc ejemplos asp .net visual-studio-2015 asp.net-core

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.