Обновление VS2015 до asp.net 5 beta7 Я получаю Не удалось загрузить файл или сборку 'dnx.clr.managed' или одну из ее зависимостей
Я обновил DNX, следуя инструкциям на https://github.com/aspnet/Home Я также скачал DotNetVersionManager-x64.msi для Visual Studio 2015, но когда я создаю новый проект и запускаю веб-сайт, я получаю следующую ошибку
Could not load file or assembly 'dnx.clr.managed' or one of its dependencies. The system cannot find the file specified.
Когда я пытаюсь запустить сайт из командной строки dnx, я получаю следующее
C:\code> dnx web stem.InvalidOperationException: Служба для типа "Microsoft.Framework.Runtime.IApplicationEnvironment" не зарегистрирована. в Microsoft.Framework.DependencyInjection.ServiceProviderExtensions.GetRequiredService(поставщик IServiceProvider, Ty serviceType) в Microsoft.Framework.DependencyInjection.ServiceProviderExtensions.GetRequiredService[T](поставщик IServiceProvider)
в Microsoft.AspNet.Hosting.Program.Main(String[] args) - Конец трассировки стека от предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(сборка сборки, аргументы String [], сервер службы IServiceProvider) в Microsoft.Dnx.ApplicationHost.Program.ExecuteMain(хост DefaultHost, аргументы String applicationName, String[]) в Microsoft.Dnx.ApplicationHost.Program.Main(String[] args) - Конец трассировки стека от предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute (сборка сборки, String[] args, ovider службы IServiceProvider) в Microsoft.Dnx.Host.Bootstrapper.RunAsync(список аргументов `1, IRuntimeEnvironment env, FrameworkName targetFramework) в Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(строковые [] args, FrameworkName целевого объекта) Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String[] args, FrameworkName targetFramework)
2 ответа
Похоже, что бета7 больше не несет dnx.clr.managed.dll (и его зависимости). Я решил эту проблему с помощью следующих шагов:
Вы можете проверить, ожидает ли ваш файл global.json бета7, найдя следующий узел в global.json:
"sdk": {
"version": "1.0.0-beta7",
"runtime": "clr",
"architecture": "x86"
}
Если ваш проект продолжает поиск файла dnx.clr.managed.dll (и его зависимостей), вы можете вручную отредактировать файл project.json (который хранит зависимости и заменяет старые файлы cs.proj и vb.proj), чтобы указать к ожидаемой версии времени выполнения dnx, например:
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta5"
},
отредактировано для:
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta7"
},
После сохранения изменений необходимо восстановить зависимости. Один из способов - перейти с терминалом (CMD) в папку ProjectName/src/ProjectName/ (где находится файл project.json) и выполнить команду
dnu restore
команда. Надеюсь, он успешно запросит новые зависимости, и вы готовы к работе.
PS: я не пробовал запускать с установкой x64, так как бесплатные / общие приложения могут (?) Быть несовместимыми с установкой 64-битной платформы. Не стесняйтесь поправлять меня, если я ошибаюсь.
У меня была эта ошибка после обновления проекта с бета-5 до бета-8 при попытке запустить его в IIS Express. Я смог исправить это, удалив эту строку в wwwroot\web.config
:
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
Должно быть, он был включен в более ранние версии шаблона проекта и предположительно несовместим с новым конвейером запросов, но я не смог найти никакой документации, подтверждающей это.