¿Cómo puedo diagnosticar dependencias faltantes (u otros fallos del cargador) en dnx?


Estoy tratando de ejecutar una versión modificada de la muestra HelloWeb para ASP.NET vNext en DNX usando Kestrel. Entiendo que esto es muy mucho en el borde de la hemorragia, pero espero que el ASP.NET el equipo al menos mantendría la aplicación web más simple posible funcionando:)

Medio ambiente:

  • Linux (Ubuntu, más o menos)
  • Mono 3.12.1
  • DNX 1.0.0-beta4-11257 (también tengo 11249 disponible)

Código "Web app", en Startup.cs:

using Microsoft.AspNet.Builder;
public class Startup
{
    public void Configure(IApplicationBuilder app)
    {
        app.UseWelcomePage();
    }
}

Configuración del proyecto, en project.json:

{
  "dependencies": {
    "Kestrel": "1.0.0-beta4",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta4",
    "Microsoft.AspNet.Hosting": "1.0.0-beta4",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta4",
    "Microsoft.Framework.Runtime": "1.0.0-beta4",
    "Microsoft.Framework.Runtime.Common": "1.0.0-beta4",
    "Microsoft.Framework.Runtime.Loader": "1.0.0-beta4",
    "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
  },
  "commands": {
    "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004"
  },
  "frameworks": {
    "dnx451": {}
  }
}

kpm restore parece funcionar bien.

Cuando intento ejecutar, sin embargo, obtengo una excepción que sugiere que Microsoft.Framework.Runtime.IApplicationEnvironment no se puede encontrar. Línea de comandos y error (algo reformateado)

.../HelloWeb$ dnx . kestrel
System.IO.FileNotFoundException: Could not load file or assembly 
'Microsoft.Framework.Runtime.IApplicationEnvironment,
  Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
or one of its dependencies.
File name: 'Microsoft.Framework.Runtime.IApplicationEnvironment,
  Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke 
    (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke 
    (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder,
     System.Object[] parameters, System.Globalization.CultureInfo culture)
    [0x00000] in <filename unknown>:0

Si bien obviamente mi necesidad más apremiante es solucionar esto, también apreciaría consejos sobre cómo mover diagnosticar lo que va mal para que pueda solucionar problemas similares yo mismo en el futuro. (También es probable que esta pregunta sea más útil para otros también.)

He encontrado Microsoft.Framework.Runtime.IApplicationEnvironment en el Microsoft.Framework.Runtime.Interfaces fuente del ensamblado , y eso no parece haber cambiado recientemente. No está claro por qué la excepción muestra el nombre como si fuera un ensamblado completo en sí mismo, en lugar de solo una interfaz dentro de otro ensamblado. Supongo que esto puedeser debido a interfaces neutrales de ensamblaje, pero no está claro por el error. ([AssemblyNeutral] está muerto, así que no es eso...)

Author: Jon Skeet, 2015-03-12

6 answers

Buena pregunta. Para su problema específico, parece que tiene un desajuste en sus dependencias resueltas. Cuando suceden cosas como esta, es probable que se deba a que está ejecutando su aplicación en un dnx incompatible. Todavía estamos haciendo cambios de ruptura muy grandes, por lo que si alguna vez ve que falta un método o un tipo, es probable que termine ejecutando betaX paquetes y betaY dnx o viceversa.

Aún más específicamente, Las interfaces neutrales de Ensamblaje se eliminaron en beta4, pero parece que la aplicación que está ejecutando todavía los está usando.

Tenemos planes para hacerlo de manera que los paquetes puedan marcar el dnx mínimo que requieren para ejecutarse para que el mensaje de error sea más claro. También a medida que pasa el tiempo, los cambios de ruptura se apagarán.

En general, sin embargo, siento que es hora de escribir una guía sobre cómo diagnosticar problemas como este cuando se usa dnx (ya que es bastante diferente a. NET existente).

Las dependencias que pones en project.json son de nivel superior solo. Las versiones también son siempre mínimos (es como un paquete NuGet). Esto significa que cuando especificas Foo 1.0.0-beta4 realmente estás especificando Foo >= 1.0.0-beta4. Esto significa que si pides MVC 0.0.1 y la versión mínima en tu feed configurado es MVC 3.0.0, obtendrás esa. También NUNCA flotamos tu versión a menos que la especifiques. Si pide 1.0.0 y existe, obtendrá 1.0.0 incluso si existen versiones más recientes. Especificar versiones vacías es SIEMPRE malo y será no se permite en versiones posteriores.

Hay una nueva característica que estamos introduciendo en nuget llamada versiones flotantes. Hoy solo funciona en la etiqueta de presentación, pero en la próxima versión funcionará en más partes de la versión. Esto es similar a la sintaxis npm y gem para especificar rangos de versiones en el archivo de especificación del paquete.

1.0.0-* - Me da la versión MÁS ALTA que coincide con el prefijo (de acuerdo con reglas de versionado semántico) O si no hay ninguna versión que coincida con prefijo, utilice el comportamiento normal y obtener la versión MÁS baja > = la versión especificada.

Cuando ejecute restore en las últimas compilaciones, escribirá un archivo llamado project.lock.json. Este archivo tendrá el cierre transitivo de dependencias para todos los frameworks de destino definidos en project.json.

Cuando algo como esto falla, puedes hacer lo siguiente: {[28]]}

Eche un vistazo a las dependencias resueltas usando kpm list. Esto le mostrará las versiones resueltas de los paquetes referenciados por su proyecto y lo que la dependencia tiró en. por ejemplo, si A - > B, mostrará:

A
  -> B
B
 ->

Salida real de la lista de KPM:

Listando dependencias para ClassLibrary39 (C:\Users\davifowl\Documents\Visual Studio 14 \ Projects \ ClassLibrary39 \ src \ ClassLibrary39 \ project.json)

[Target framework DNX,Version=v4.5.1 (dnx451)]

 framework/Microsoft.CSharp 4.0.0.0
    -> ClassLibrary39 1.0.0
 framework/mscorlib 4.0.0.0
    -> ClassLibrary39 1.0.0
 framework/System 4.0.0.0
    -> ClassLibrary39 1.0.0
 framework/System.Core 4.0.0.0
    -> ClassLibrary39 1.0.0
*Newtonsoft.Json 6.0.1
    -> ClassLibrary39 1.0.0

[Target framework DNXCore,Version=v5.0 (dnxcore50)]

*Newtonsoft.Json 6.0.1
    -> ClassLibrary39 1.0.0
 System.Runtime 4.0.20-beta-22709
    -> ClassLibrary39 1.0.0

* significa dependencia directa.

Si tiene un visual studio en funcionamiento (que rompe con DNX en este momento), puede mirar el nodo references. Tiene los mismos datos representados visualmente:

Nodo de referencias

Veamos cómo se ve un fallo de dependencia:

Aquí está el proyecto.json

{
    "version": "1.0.0-*",
    "dependencies": {
        "Newtonsoft.Json": "8.0.0"
    },

    "frameworks" : {
        "dnx451" : { 
            "dependencies": {
            }
        },
        "dnxcore50" : { 
            "dependencies": {
                "System.Runtime": "4.0.20-beta-22709"
            }
        }
    }
}

Newtonsoft.Json 8.0.0 no existe. Así que al ejecutar kpm restore se muestra lo siguiente:

introduzca la descripción de la imagen aquí

Cuando se diagnostica cuando la restauración puede haber fallado, mire las solicitudes HTTP realizadas, le dicen qué fuentes de paquetes configuradas buscaron kpm. Observe en la imagen de arriba, hay una solicitud CACHE. Este es el almacenamiento en caché integrado basado en el tipo de (nupkg o nuspec)y tiene un TTL configurable (mira kpm restore --help). Si desea forzar kpm para golpear las fuentes NuGet remotas, use la bandera --no-cache:

KPM restore no no-cache

Estos errores también aparecen en Visual Studio en la ventana de salida del registro del gestor de paquetes:

introduzca la descripción de la imagen aquí

Nota al margen!

Fuentes de paquetes

Voy a describir la forma NuGet.la configuración funciona ahora mismo (lo que probablemente cambiará en el futuro). Por defecto tienes un NuGet.config con el predeterminado NuGet.org fuente configurada globalmente en %appdata%\NuGet\NuGet.Config. Puede administrar estas fuentes globales dentro de visual studio o con la herramienta de línea de comandos NuGet. Siempre debe mirar sus fuentes efectivas (las enumeradas en la salida de kpm) cuando intente diagnosticar fallas.

Leer más sobre NuGet.config aquí

De vuelta a la realidad:{[28]]}

Cuando las dependencias no están resueltas, ejecutar la aplicación le dará esto:

> dnx . run
System.InvalidOperationException: Failed to resolve the following dependencies for target framework 'DNX,Version=v4.5.1':
   Newtonsoft.Json 8.0.0

Searched Locations:
  C:\Users\davifowl\Documents\Visual Studio 14\Projects\ClassLibrary39\src\{name}\project.json
  C:\Users\davifowl\Documents\Visual Studio 14\Projects\ClassLibrary39\test\{name}\project.json
  C:\Users\davifowl\.dnx\packages\{name}\{version}\{name}.nuspec
  C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\{name}.dll
  C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\{name}.dll
  C:\WINDOWS\Microsoft.NET\assembly\GAC_32\{name}\{version}\{name}.dll
  C:\WINDOWS\Microsoft.NET\assembly\GAC_64\{name}\{version}\{name}.dll
  C:\WINDOWS\Microsoft.NET\assembly\GAC_MSIL\{name}\{version}\{name}.dll

Try running 'kpm restore'.

   at Microsoft.Framework.Runtime.DefaultHost.GetEntryPoint(String applicationName)
   at Microsoft.Framework.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args)
   at Microsoft.Framework.ApplicationHost.Program.Main(String[] args)

El tiempo de ejecución básicamente intenta para validar que todo el gráfico de dependencias se resuelve antes de intentar ejecutarse. Si sugiere ejecutar kpm restore es porque no puede encontrar las dependencias listadas.

Otra razón por la que podría obtener este error es si está ejecutando el tipo dnx incorrecto. Si su aplicación solo especifica dnx451 e intenta ejecutar el dnx de CoreCLR, es posible que vea un problema similar. Preste mucha atención al marco de destino en el mensaje de error:

Para correr:

dnx4x - runs on dnx-clr-{etc}
dnxcore50 - runs on dnx-coreclr-{etc}

Cuando usted está tratando de ejecutar, usted debe recordar que el mapeo mental de clr a marco de destino definido en su project.json.

Esto también se muestra en Visual Studio bajo el nodo referencias: Dependencias sin resolver

Los nodos marcados como amarillos no están resueltos.

Estos también aparecen en la lista de errores:

Lista de errores dependencias no resueltas

Edificio

Estos errores también aparecen al construir. Al compilar desde la línea de comandos, la salida es muy detallada y puede ser extremadamente útil al diagnosticar problemas:

> kpm build

Building ClassLibrary39 for DNX,Version=v4.5.1
  Using Project dependency ClassLibrary39 1.0.0
    Source: C:\Users\davifowl\Documents\Visual Studio 14\Projects\ClassLibrary39\src\ClassLibrary39\project.json

  Using Assembly dependency framework/mscorlib 4.0.0.0
    Source: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\mscorlib.dll

  Using Assembly dependency framework/System 4.0.0.0
    Source: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.dll

  Using Assembly dependency framework/System.Core 4.0.0.0
    Source: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Core.dll

  Using Assembly dependency framework/Microsoft.CSharp 4.0.0.0
    Source: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Microsoft.CSharp.dll


Building ClassLibrary39 for DNXCore,Version=v5.0
  Using Project dependency ClassLibrary39 1.0.0
    Source: C:\Users\davifowl\Documents\Visual Studio 14\Projects\ClassLibrary39\src\ClassLibrary39\project.json

  Using Package dependency System.Console 4.0.0-beta-22709
    Source: C:\Users\davifowl\.dnx\packages\System.Console\4.0.0-beta-22709
    File: lib\contract\System.Console.dll

  Using Package dependency System.IO 4.0.10-beta-22231
    Source: C:\Users\davifowl\.dnx\packages\System.IO\4.0.10-beta-22231
    File: lib\contract\System.IO.dll

  Using Package dependency System.Runtime 4.0.20-beta-22231
    Source: C:\Users\davifowl\.dnx\packages\System.Runtime\4.0.20-beta-22231
    File: lib\contract\System.Runtime.dll

  Using Package dependency System.Text.Encoding 4.0.10-beta-22231
    Source: C:\Users\davifowl\.dnx\packages\System.Text.Encoding\4.0.10-beta-22231
    File: lib\contract\System.Text.Encoding.dll

  Using Package dependency System.Threading.Tasks 4.0.10-beta-22231
    Source: C:\Users\davifowl\.dnx\packages\System.Threading.Tasks\4.0.10-beta-22231
    File: lib\contract\System.Threading.Tasks.dll

La salida muestra todos los ensamblados pasados al compilador desde paquetes y referencias de proyectos. Cuando empiezas a tener errores de compilación, es útil mirar aquí para asegurarte de que el paquete que estás usando realmente funciona en esa plataforma de destino.

Aquí hay un ejemplo de un paquete que no funciona en dnxcore50:

{
    "version": "1.0.0-*",
    "dependencies": {
        "Microsoft.Owin.Host.SystemWeb": "3.0.0"
    },

    "frameworks": {
        "dnx451": {
            "dependencies": {
            }
        },
        "dnxcore50": {
            "dependencies": {
                "System.Console": "4.0.0-beta-22709"
            }
        }
    }
}

Microsoft.Owin.Host.SystemWeb versión 3.0.0 no tiene ningún ensamblado que se ejecute en dnxcore50 (tome un mira la carpeta lib del paquete descomprimido). Cuando ejecutamos kpm build:

Ensambles faltantes en dnxcore50

Observe que dice " usando el paquete Microsoft.Owin.Host.SystemWeb " pero no hay "File:". Esta podría ser la razón de un fallo de construcción.

Aquí termina mi volcado cerebral{[28]]}

 143
Author: davidfowl,
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
2015-03-22 15:34:51

Todavía no sé completamente lo que estaba mal, pero ahora tengo una serie de pasos para al menos hacer que sea más fácil probar cosas:

  • En caso de duda, reinstale dnx
    • Eliminar la caché de paquetes puede ser útil
  • Marque ~/.config/NuGet.config para asegurarse de que está utilizando los feeds NuGet correctos

Terminé usando la siguiente línea de comandos para probar varias opciones de una manera razonablemente limpia:

rm -rf ~/.dnx/packages && rm -rf ~/.dnx/runtimes && dnvm upgrade && kpm restore && dnx . kestrel

Parece que mi problema era realmente debido a las versiones incorrectas de las dependencias que se están instalando. Un número de versión de "1.0.0-beta4" es aparentemente muy diferente a "1.0.0-beta4-*". Por ejemplo, la dependencia Kestrel instaló la versión 1.0.0-beta4-11185 cuando solo se especificó como 1.0.0-beta4, pero la versión 1.0.0-beta4-11262 con el -* al final. Quería especificar beta4 explícitamente para evitar accidentalmente el uso de una compilación beta3 con el

La siguiente configuración del proyecto funciona bien:

{
  "dependencies": {
    "Kestrel": "1.0.0-beta4-*",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta4-*",
    "Microsoft.AspNet.Hosting": "1.0.0-beta4-*",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4-*",
  },
  "commands": {
    "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004"
  },
  "frameworks": {
    "dnx451": {}
  }
}
 17
Author: Jon Skeet,
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
2015-03-12 12:41:13

Puede establecer un env var llamado DNX_TRACE a 1 para ver una TONELADA más de información de diagnóstico. Tenga cuidado, es mucho más información!

 8
Author: Eilon,
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
2015-03-13 00:30:26

Para que funcione, he modificado mi project.json .. ahora se ve como:

{
"dependencies": {
    "Kestrel": "1.0.0-*",
    "Microsoft.AspNet.Diagnostics": "1.0.0-*",
    "Microsoft.AspNet.Hosting": "1.0.0-*",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-*",
    "Microsoft.AspNet.StaticFiles": "1.0.0-*"
},
"commands": {
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5001",
    "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004"
},
"frameworks": {
    }
}

La clave parecía ser la sección de marcos.

También el cambio de nombre cambió cómo funciona k web de modo que ahora es dnx . web o dnx . kestrel

Update-bit más info

Curiosamente, después de ejecutar sin frameworks definidos fue y obtuvo un montón de cosas adicionales cuando lo hice kpm restore:

...
Installing Microsoft.Framework.Logging 1.0.0-beta4-11001
Installing Microsoft.Framework.Logging.Interfaces 1.0.0-beta4-11001
Installing Microsoft.Framework.DependencyInjection.Interfaces 1.0.0-beta4-11010
Installing Microsoft.Framework.DependencyInjection 1.0.0-beta4-11010
Installing Microsoft.Framework.ConfigurationModel 1.0.0-beta4-10976
Installing Microsoft.Framework.ConfigurationModel.Interfaces 1.0.0-beta4-10976
Installing Microsoft.AspNet.Hosting.Interfaces 1.0.0-beta4-11328
Installing Microsoft.AspNet.FeatureModel 1.0.0-beta4-11104
Installing Microsoft.AspNet.Http 1.0.0-beta4-11104
Installing Microsoft.AspNet.FileProviders.Interfaces 1.0.0-beta4-11006
Installing Microsoft.Framework.Caching.Interfaces 1.0.0-beta4-10981
Installing Microsoft.AspNet.FileProviders 1.0.0-beta4-11006
Installing Microsoft.AspNet.Http.Core 1.0.0-beta4-11104
Installing Microsoft.AspNet.WebUtilities 1.0.0-beta4-11104
Installing Microsoft.Net.Http.Headers 1.0.0-beta4-11104
Installing Microsoft.AspNet.Http.Interfaces 1.0.0-beta4-11104
Installing Microsoft.Framework.Runtime.Interfaces 1.0.0-beta4-11257
Installing Microsoft.AspNet.Server.Kestrel 1.0.0-beta4-11262
Installing Microsoft.Net.Http.Server 1.0.0-beta4-11698
Installing Microsoft.Net.WebSockets 1.0.0-beta4-11698
Installing Microsoft.Net.WebSocketAbstractions 1.0.0-beta4-10915
Installing Microsoft.Framework.WebEncoders 1.0.0-beta4-11104
Installing Microsoft.Framework.OptionsModel 1.0.0-beta4-10984
Installing Microsoft.AspNet.Http.Extensions 1.0.0-beta4-11104
Installing Microsoft.AspNet.Diagnostics.Interfaces 1.0.0-beta4-12451
Installing Microsoft.AspNet.RequestContainer 1.0.0-beta4-11328

.. entonces funcionó bien. Luego cambié de nuevo en la sección marco

"frameworks": {
    "dnx451": {}
}

.. y todavía funcionaba, mientras que antes arrojaba un error !

Muy extraño!

(Estoy corriendo 1.0.0-beta4-11257)

Nueva actualización

Hice girar una nueva instancia de Ubuntu, y obtuve el mismo error que tú .. Mi pensamiento era que el problema puede ser causado por solo tratar de obtener paquetes de nuget.org y no myget.org (que tiene las cosas más nuevas), así que introduje un NuGet.Config en la raíz del proyecto..

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="AspNetVNext" value="https://www.myget.org/F/aspnetvnext/" />
    <add key="NuGet" value="https://nuget.org/api/v2/" />
  </packageSources>
</configuration>

.. esto parece haberlo arreglado para mí al obtener el versiones correctas (después de otra kpm restore).

 3
Author: Stephen Pope,
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
2015-03-12 12:31:05

En estos días, todas mis package.json versiones terminan en "-rc2-*"

(Las únicas excepciones que he visto hasta ahora son los paquetes Microsoft.Framework.Configuration, que deben ser "1.0.0-rc1-*" o "1.0.0-*")

En cuanto a la "versión entrena" que menciona @davidfowl, parece que ha desaparecido MUCHO dolor entre beta8 y rc2.

dnvm upgrade -u -arch x64 -r coreclr

He tenido la mayor suerte en coreclr con estos 2 NuGet feeds:

"https://www.myget.org/F/aspnetvnext/"
"https://nuget.org/api/v2/"

Cuando tengo problemas de paquetes faltantes, el 90% de las veces son los mismos culpables:

Newtonsoft.Json
Ix-Async
Remotion.Linq

La mayoría de las veces, puedo sortearlos forzando la NuGet.org feed:

dnu restore;
dnu restore -s https://nuget.org/api/v2

Aquí está mi configuración de trabajo.json:

{
"dependencies": {
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc2-*",
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-rc2-*",
    "Microsoft.AspNet.Hosting": "1.0.0-rc2-*",
    "Microsoft.AspNet.Http": "1.0.0-rc2-*",
    "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc2-*",
    "Microsoft.AspNet.Mvc.Core": "6.0.0-rc2-*",
    "Microsoft.AspNet.Mvc.Razor": "6.0.0-rc2-*",
    "Microsoft.AspNet.Owin": "1.0.0-rc2-*",
    "Microsoft.AspNet.Routing": "1.0.0-rc2-*",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc2-*",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-rc2-*",
    "Microsoft.AspNet.Session": "1.0.0-rc2-*",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc2-*",
    "EntityFramework.Commands": "7.0.0-rc2-*",
    "EntityFramework.Core": "7.0.0-rc2-*",
    "EntityFramework.InMemory": "7.0.0-rc2-*",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc2-*",
    "EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc2-*",
    "EntityFramework.Relational": "7.0.0-rc2-*",
    "EntityFramework7.Npgsql": "3.1.0-beta8-2",
    "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc2-*",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-*",
    "Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-*",
    "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc2-*",
    "Microsoft.Framework.Configuration.CommandLine": "1.0.0-*",
    "Microsoft.Framework.Configuration.EnvironmentVariables": "1.0.0-*",
    "Microsoft.Framework.Configuration.Json": "1.0.0-*"
},
"commands": {
    "ef": "EntityFramework.Commands",
    "dev": "Microsoft.AspNet.Hosting --ASPNET_ENV Development --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5004"
},
"frameworks": {
    "dnxcore50": {}
}
}
 2
Author: CrazyPyro,
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
2015-11-16 19:56:48

También tenía problemas de dependencia que faltaban al tratar de apaciguar las referencias dnxcore50 y dnx451.

Si entiendo este derecho "dependencias": {} se comparten entre los frameworks.

Luego "dependencias":{} dentro de los "frameworks": son específicos de ese framework.

Dnxcore50 es un tiempo de ejecución modular (autónomo), por lo que básicamente contiene todos los tiempos de ejecución del núcleo necesarios para ejecutar un programa a diferencia de. net framework clásico donde tiene dependencias del núcleo dispersas sobre otra parte.

Así que dicho esto, quería atenerme al enfoque mínimo en caso de que decidiera hospedar en mac o Linux en algún momento.

Actualización Se encontró con extraños problemas de dependencia con vistas cshtml, solo fue con dnx451 por ahora.

Este es mi proyecto.json

{
"webroot": "wwwroot",
"version": "1.0.0-*",

"dependencies": {
    "System.Runtime": "4.0.10",
    "Microsoft.AspNet.Hosting": "1.0.0-beta4",
    "Microsoft.AspNet.Mvc": "6.0.0-beta4",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta6-12075",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta6-12457",
    "Microsoft.Framework.DependencyInjection": "1.0.0-beta4",
    "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta5"
 },

"commands": {
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://admin.heartlegacylocal.com"  },

"frameworks": {
"dnx451": { }
 }
},

"publishExclude": [
"node_modules",
"bower_components",
"**.xproj",
"**.user",
"**.vspscc"
],
"exclude": [
  "wwwroot",
  "node_modules",
  "bower_components"
  ]
}
 1
Author: wchoward,
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
2015-07-16 19:52:28