Обновление 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" />

Должно быть, он был включен в более ранние версии шаблона проекта и предположительно несовместим с новым конвейером запросов, но я не смог найти никакой документации, подтверждающей это.

Другие вопросы по тегам