Как я могу диагностировать отсутствующие зависимости (или другие ошибки загрузчика) в dnx?
Я пытаюсь запустить модифицированную версиюОбразец HelloWeb для ASP.NET vNext на DNX с использованием Kestrel. Я понимаю что этоочень на переднем крае, но я надеюсь, что команда ASP.NET по крайней мере поддержит работу самого простого веб-приложения :)
Среда:
Linux (Ubuntu, в значительной степени)Mono 3.12.1DNX 1.0.0-beta4-11257 (у меня тоже есть 11249)Код "Веб-приложение", вStartup.cs
:
using Microsoft.AspNet.Builder;
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseWelcomePage();
}
}
Конфигурация проекта, в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
Кажется, работает нормально.
Однако, когда я пытаюсь запустить, я получаю исключение, предполагающее, чтоMicrosoft.Framework.Runtime.IApplicationEnvironment
не может быть найден Командная строка и ошибка (несколько переформатированы)
.../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
Хотя, очевидно, моя самая насущная необходимость - это исправить, я также был бы признателен за советы о том, как перейти к диагностике того, что идет не так, чтобы я мог сам решить подобные проблемы в будущем. (Это также может сделать этот вопрос более полезным для других.)
я обнаружилMicrosoft.Framework.Runtime.IApplicationEnvironment
вMicrosoft.Framework.Runtime.Interfaces
источник сборкии это, кажется, не изменилось в последнее время. Непонятно, почему исключение отображает имя так, как будто оно представляет собой целую сборку, а не просто интерфейс внутри другой сборки.Я предполагаю этоможет быть из-засборка нейтральных интерфейсов, но это не ясно из ошибки. ([AssemblyNeutral]
мертв, так что это не так ...)