Siemanko.
Dziś kilka wskazówek jak podejść do próby migracji projektu z wersji RC1 do RC2. Celowo napisałem „próby” ponieważ nie ma pewności, że Ci się to uda 😉 Wszystko zależy od struktury Twojego projektu oraz od Twojej odporności na dziwne błędy uniemożliwiające kompilację, które nie są zgłaszane przez IDE. Subiektywnie podzieliłem operacje migracji na dwa przypadki:
- kiedy masz tylko web application
- kiedy masz web application z referencjami do class library packages
Oczywiście musisz mieć zainstalowany .NET Core. Możesz to zrobić instalując update w Visual Studio lub pobierając go tutaj.
Samo Web Application
W wersji RC1 web application było jednym template’em.

Template web application w wersji RC1
Na poziomie tworzenia należało wskazać czy ma to być aplikacji Asp.Net 5 czy poprzednia

Następnie w pliku project.json należało wskazać runtime (clr lub coreclr, lub oba).
W wersji RC2 mamy dwa template’y web application – jeden dla .NETu, a drugi cross platform

Proponuję Ci utworzyć odpowiedni template (jeśli w Twoja aplikacja RC1 jest cross platform i korzysta z dnxcore to wybierz .NET Core, jeśli z samego dnxa to .NET Framework). Przejdź do pliku global.json nowo utworzonej solucji, skopiuj sdk version i wklej w to samo miejsce w swoim projekcie RC1.

global.json w wersji RC1

global.json w wersji RC2
Oczywiście wersja sdk 1.0.0-preview1-002702 w RC2 jest taka na dzień pisania posta.
Przejdź do katalogu C:\Users\nazwa_usera i skasuj folder .dnx. Tak, skasuj. Dnxa już nie ma i wszystko co jest w tym folderze już nie jest potrzebne, a może tylko generować jakieś trudności.
Dostosuj swój project.json do tego, który jest w wygenerowanym nowym szablonie i zacznij zmieniać namespace’y paczek w sekcji dependencies. Tutaj musisz zdawać się na IDE i błędy, które zgłasza (np. namespace’y z AspNet trzeba zmienić na AspNetCore itp.). Jak już uda Ci się doprowadzić error list do pustki to przejdź do package manager console, a w nim do folderu aplikacji i wpisz dotnet restore. Powinny zacząć pobierać się wszystkie paczki nugetowe. Reaguj na błędy, restoruj paczki i tak w kółko do skutku 🙂 Zamknięcie Visuala i ponowne otwarcie jest jak najbardziej wskazane 😉
Web Application z referencjami do class library packages
Tu już jest gorzej ponieważ w RC2 nie ma tego wynalazku – class library package z niebieską ikonką i plikiem project.json

Class library dla Asp.Net Core w wersji RC1
Teraz mamy normalne „zielone” class library

Class library w wersji Asp.Net Core RC2
Jak widać na zdjęciu mamy także dwa typy class library – dla .NET Core i dla .NET Framework. Aby nasz projekt zabanglał w RC2 to niestety musimy utworzyć całkiem nowe class library i pokopiować do nich klasy oraz dodać wszystkie paczki nugetowe przez Nuget Package Manager (w poprzedniej wersji można to było zrobić w pliku project.json). Należy pamiętać aby zaznaczyć ckeckbox Include prerelease podczas wyszukiwania paczek.
Podsumowanie
Życzę Ci powodzenia i wytrwałości. Pamiętaj jednak, że zawsze możesz utworzyć całą solucję od nowa i pokopiować pliki, albo po prostu rzucić to wszystko i wyjechać w Bieszczady 😉
Pjona!