Od 17 listopada dostępna jest nowa wersja .NET Core 1.1. Wraz z nią pojawiły się nowe wersje ASP.NET oraz EntityFrameworka. Przyszedł, więc czas na aktualizację aplikacji do najnowszego środowiska. Proces ten powinien przebiegać bezboleśnie, ale nie do końca. W moim przypadku miałem problemy z dwoma elementami, co spowodowało, że aplikacja nie wystartowała od razu po aktualizacji.
Przed przystąpieniem do aktualizacji należy ściągnąć najnowszą wersją pakietów – zarówno SDK, jak i Runtime. Pakiety do ściągnięcia dostępne są na stronie .NET Core Downloads.
Optymistycznie myślałem, że wystarczy zaktualizowanie pakietów NuGetem i już.
Tymczasem aplikacja po tym zabiegu już nie wstała, a nawet przestała się kompilować. Pojawiły się następujące błędy:
- 1. The project has not been restored or restore failed – run `dotnet restore`
- 2. The project does not list one of 'win10-x64, win81-x64, win8-x64, win7-x64′ in the 'runtimes’ section.
- 3. You may be trying to publish a library, which is not supported. Use `dotnet pack` to distribute libraries.
- Can not find runtime target for framework ’.NETCoreApp,Version=v1.0′ compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64′.
Uruchomienie komendy dotnet restore nic nie pomogło – lista błędów wyglądała cały czas tak samo.
project.json
Naprawa błędów polega na edycji dwóch plików. Zacznijmy od project.json. Aktualizacja bibliotek powoduje usunięcie jednego wpisu z tego pliku. Plik ten po aktualizacji wygląda w następujący sposób:
{ "dependencies": { "Microsoft.AspNetCore.Mvc": "1.1.1", "Microsoft.AspNetCore.Routing": "1.1.0", "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", "Microsoft.Extensions.Configuration.Json": "1.1.0", "Microsoft.Extensions.Logging": "1.1.0", "Microsoft.Extensions.Logging.Console": "1.1.0", "Microsoft.Extensions.Logging.Debug": "1.1.0", "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", "Microsoft.NETCore.App": "1.1.0" }
Musimy w nim poprawić wpis dotyczący Microsoft.NETCore.App. Zmieniamy go na:
"Microsoft.NETCore.App": { "version": "1.1.0", "type": "platform"},
W pliku tym powinniśmy również zmienić wpis:
"frameworks": { "netcoreapp1.0": { "imports": [ "dotnet5.6", "portable-net45+win8" ] } }
na:
"frameworks": { "netcoreapp1.1": { "imports": [ "dotnet5.6", "portable-net45+win8" ] } }
W tym momencie nasza aplikacja powinna już poprawnie się skompilować i wystartować. Ale to jeszcze nie wszystko.
global.json
W pliku global.json znajdują się informacje dotyczące wersji SDK. Pomimo aktualizacji, wskazuje on cały czas na poprzednią wersję SDK:
{ "projects": ["src", "test" ], "sdk": { "version": "1.0.0-preview2-003131" } }
Musimy więc ten plik również zaktualizować:
{ "projects": ["src", "test"], "sdk": { "version": "1.0.0-preview2-1-003177" } }
Dopiero w tym momencie nasza aplikacja została poprawnie zaktualizowana do ASP.NET Core 1.1.
Zostaw komentarz