Обновление до ASP NET 5 beta5 ломает все

Я следовал этому руководству при обновлении до бета5, и процесс обновления, похоже, сработал.

http://blogs.msdn.com/b/webdev/archive/2015/06/30/asp-net-5-beta5-now-available.aspx

Для обновления до ASP.NET 5 Beta5 выполните следующие действия:

  • Установите.NET Version Manager (DNVM), если у вас его еще нет (он поставляется с предустановленной Visual Studio 2015 RC или вы можете получить последнюю версию)
  • В командной строке установите для переменной среды DNX_FEED значение https://www.nuget.org/api/v2
  • Запустите "dnvm upgrade". В вашем приложении обновите файл global.json, чтобы он указывал на бета-версию среды выполнения.NET (DNX).
  • Также ваш project.json указывает на версии пакета beta5
  • Запустите "dnu restore". Запустите "dnu build" и перенесите ваш код в необходимые бета-версии.

Однако я получаю ошибки сборки, которые говорят, что у меня отсутствуют сборки. Он жалуется на System.Void и такого не хватает. Он также не может найти контроллер из Microsoft.AspNet.MVC:/

Если я вернусь к бета4, то он снова заработает.

Какой шаг я пропускаю?

Список DNVM (это возвращается к бета4)

Active Version           Runtime Architecture Location                      Ali
                                                                            as
------ -------           ------- ------------ --------                      ---
       1.0.0-beta4       clr     x64          C:\Users\MySelf\.dnx\runtimes
  *    1.0.0-beta4       clr     x86          C:\Users\MySelf\.dnx\runtimes
       1.0.0-beta4       coreclr x64          C:\Users\MySelf\.dnx\runtimes
       1.0.0-beta4       coreclr x86          C:\Users\MySelf\.dnx\runtimes
       1.0.0-beta5       clr     x86          C:\Users\Myself\.dnx\runtimes def
       1.0.0-beta5-12103 clr     x86          C:\Users\MySelf\.dnx\runtimes

2 ответа

Решение

Я только что обновил веб-приложение ASP.MVC для Visual Studio 2015 с бета4 до бета5, и теперь он запущен. Вот некоторые дополнения к инструкциям, которым вы следовали.

Запустите "dnvm upgrade"

После этого вот что dnvm list будет выводить.

Active Version           Runtime Architecture Location                       Alias
------ -------           ------- ------------ --------                       -----
       1.0.0-beta4       clr     x64          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta4       clr     x86          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta4       coreclr x64          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta4       coreclr x86          C:\Users\BigFont\.dnx\runtimes
  *    1.0.0-beta5       clr     x86          C:\Users\BigFont\.dnx\runtimes default
       1.0.0-beta5-12087 clr     x86          C:\Users\BigFont\.dnx\runtimes

В вашем приложении обновите ваш global.json, чтобы он указывал на beta5

В global.json указать на конкретную сборку бета5:

{
    "projects": [ "src", "test" ],
    "sdk": {
        "version": "1.0.0-beta5"
    }
}

Также ваш project.json указывает на версии пакета beta5

В project.json ссылка beta5, Это заставит dnu восстановить самую последнюю сборку ( ну, вроде - Дэвид Фаул описывает нюансы "плавающей версии" здесь.)

"dependencies": {
  "Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
  "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
  "Microsoft.AspNet.StaticFiles": "1.0.0-beta5"
},

... перенести ваш код в бета5 при необходимости

Как только вы перестали получать ошибки об отсутствующих фундаментальных объектах, таких как System.Void, вы можете получить ошибки о внесении изменений. Это может занять некоторое исследование, чтобы решить, в зависимости от того, что использует ваша кодовая база. Например, если вы используете ASP.NET Identity, вам нужно изменить это:

SignInManager.PasswordSignInAsync(
    model.Email, model.Password, model.RememberMe, shouldLockout: false);

к этому:

SignInManager.PasswordSignInAsync(
    model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);

Заключительное примечание: Visual Studio

Закрытие и повторное открытие решения в Visual Studio может решить проблемы восстановления / сборки после обновления global.json а также package.json файлы.

См. Также: веб-проект ASP.NET 5 (vNext): обновление конфликта библиотек с бета4 до бета6

@Shaun Luttin покрыл это, но я упомяну две вещи:

  • Ссылка на браузер фактически не работает в бета-версии 5. Она вызывает очень странную ошибку. Вы должны закомментировать app.UseBrowserlink() чтобы все заработало. Более поздние версии исправили эту проблему.
  • Я также обнаружил, что пакеты с "ConfigurationModel" в имени были переименованы в "Configuration".
Другие вопросы по тегам