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