¿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...)
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:
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:
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
:
Estos errores también aparecen en Visual Studio en la ventana de salida del registro del gestor de paquetes:
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:
Los nodos marcados como amarillos no están resueltos.
Estos también aparecen en la lista de errores:
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
:
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]]}
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": {}
}
}
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!
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
).
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": {}
}
}
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"
]
}
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