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