Uruchomienie .NET Core lub .NET 5

0

Mam kilka aplikacji konsolowych w .NET Framework 4.5 i chciałbym spróbować przerobić je na .NET Core.

Posiadam komputer z systemem Ubuntu Linux 20.04 od sierpnia lub września 2020, już wtedy na nim zainstalowałem .NET Core poprzez wykonanie następujących poleceń.

wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo add-apt-repository universe
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-3.1
sudo apt-get install dotnet-sdk-2.1
dotnet --info

W tamtym czasie zainstalowałem też Mono i MonoDevelop. W MonoDevelop można było utworzyć projekt .NET Core. W tamtym czasie utworzyłem próby projekt "hello world", skompilowałem, zadziałał i temat odpuściłem zostawiając na później. W czasie użytkowania akceptuję wszystkie aktualizacje. Teraz, jak próbuję założyć nowy projekt w .NET Core lub otworzyć tamtem projekt, to przy próbie kompilacji dostaję błąd podobny do tego w tym linku https://github.com/mono/md-website/issues/99 , jednakże, jak poza MonoDevelop wejde do katalogu z plikiem SLN i uruchomię polecenie msbuild, to projekt kompiluje się jako debug do wersji .NET Core 2.1 i za pomocą polecenia dotnet mogę uruchomić. Zmiana na Release niczego nie zmienia, a w opcjach projektu nie mam możliwości zmiany wersji frameworka.

Na próbę utworzyłem wirtualną maszynę, w której na czysto zainstalowałem Ubuntu 20.04, zaakceptowałem zaproponowane aktualizacje, potem .NET Core i MonoDevelop, nic więcej. Przy kompilacji i uruchamianiu jest dokładnie ten sam problem.

Mam dodatkowy komputer z Windows 8, w nim, jak próbuję zainstalować Visual Studio 2019 Community, to wyskakuje błąd, że musi być co najmniej Windows 8.1. Próbowałem zainstalować Visual Studio w wersjach 2013 i 2015, też wersja community, w obu przypadkach są następujące problemy:

  1. Jak na stronie Microsoftu, to 2019 mogę pobrać, a jak inna wersja, to wymaga zalogowania się. Mam konto, z którym mam jakiś problem, pewnie go sam zwalczę, ewentualnie poproszę kolegę, który ma sprawne konto Microsoftu.
  2. Wykorzystując www.google.com udało mi się odnaleźć instalatory tych wersji z innych stron, jednak w momencie, jak ma pobrać właściwe dane z internetu, to niczego nie pobiera i pokazuje komunikat, że mam sprawdzić łączność z internetem pomimo, że mam sprawne połączenie. Co z tym zrobić?

W takim razie, skąd i jak uzyskać wersję Community 2013, 2015 i 2017 (właśnie nie wiem, która wersja jest ostatnią działającą na Windows 8)?

Niektórzy proponują Visual Studio Code, jako alternatywę dla Visual Studio. Zainstalowałem ten program na komputerze z Linuxem, ale wbrew pozorom to nie jest żadne IDE, tylko program pokroju Notepad++ lub Notepad2 z kolorowaniem składni i ładnym interfejsem, nic więcej, z tą różnicą, że do kolorowania danego języka trzeba doinstalować wtyczkę. Ewentualnie może wywołać jakieś polecenia systemowe.

Na obu komputerach zainstalowałem też SDK dla .NET 5.0. Na którym komputerze i w jaki sposób utworzyć projekt w .NET Core 3.1 lub .NET 5.0. Chodzi o to, żeby utworzyć nowy projekt, skopiować do niego posiadany kod i skompilować dla .NET Core przynajmniej 3.1 jako release.

0

@andrzejlisek:

Obiło mi się o uszy, że nawet mocno stargetowani na linuxa programiści .Net Core developują na Win i Visual Studio

1
  • Robiłem (krótko bo krótko ale jednak) dev na Linuxie .NET Core'a. Generalnie daruj sobie MonoDevelop, po prostu postaraj się przenieść wszystko "na sucho" do .NET Core.

  • VS Code z zestawem wtyczek daje radę, podstawowe refaktoringi działają, autocomplete jest, działa statyczna analiza

  • Jak się nie podoba to wybul $$$ i kup JetBrains Raider (30 days trial), to jest IDE z prawdziwego zdarzenia

  • Generalnie mixowanie moni i dotnet core jakoś mi się nie widzi, to samo z instalowaniem wielu wersji dotnet core. Zacznij od jednej jedynej wersji żeby uprościć problem.

Poradzić mogę tylko to:

  • Popatrz w logi nugeta, włącz debug/verbose mode - może uda Ci się ustalić co nie śmiga
  • strace powinien działać też z apkami dotnet'owymi (w sensie przez przez śledzenie calli z maszyny wirtualnej)
0

@0xmarcin ma rację, do kodowania w .NET Core na Linuksie najlepszy jest płatny Rider, inaczej zostaje tylko VS Code z wtyczkami, OmniSharpem i klepaniem w CLI. Obecnie większość i tak pracuje na Windowsach w normalnym Visual Studio, a debugować na Linuksie można przez WSL 2. No ewentualnie Visual Studio for Mac, ale za nie trzeba płacić.

0

Jeżeli chce starszy VS z https://visualstudio.microsoft.com/pl/vs/older-downloads/ , to każe się zalogować.

Ale na przykład instalka 2017 jest na przykład w https://www.programosy.pl/program,visual-studio-community.html , można pobrać, ale przy instalacji nie chce pobrać pakietu, pokazuje błąd, że nie ma połączenia z internetem, pomimo, ze mam połączenie. Co z tym zrobić?

Teraz na próbę pobrałem z https://www.techspot.com/downloads/6278-visual-studio.html , instalator się uruchamia, ale potem jest tak samo, czyli pokazuje komunikat, że nic nie może pobrać.

Czyżby oba instalatory były skopane?

Później powalczę ze swoim logowaniem do Microsoft lub poprosze kolegę o pomoc. Czy tam instalatory też są online, czy są offline?

Czy pozostaje mi jedynie postawić Windows 10 i zainstalować VS w wersji 2019?

0
0xmarcin napisał(a):
  • VS Code z zestawem wtyczek daje radę, podstawowe refaktoringi działają, autocomplete jest, działa statyczna analiza

Przedytowanie kodu to jest jedno, ale czy w VSC z wtyczkami można normalnie założyć nowy solution lub projekt i ustawić wersję frameworka i inne opcje kompilacji?

Jeżeli .NET jest od Microsoftu, C# jest od Microsoftu, VSC jest od Microsoftu, to dlaczego trzeba się posiłkować wtyczkami innych producentów, żeby napisać i skompilować program.

2
andrzejlisek napisał(a):

Jeżeli .NET jest od Microsoftu, C# jest od Microsoftu, VSC jest od Microsoftu, to dlaczego trzeba się posiłkować wtyczkami innych producentów, żeby napisać i skompilować program.

Z tego co wiem to użytkownicy Linuxa często preferują narzędzia konsolowe (tak wnioskuję po dyskusjach na ten temat) i dokładnie taki styl pracy z dotnetem Microsoft proponuje właśnie pod Linuxem.
W dotnet CLI utworzenie solucji to po prostu

dotnet new solution --name MySolutin

Podobnie jest z dodaniem projektu i kompilacją.
Więc w sumie VS Code, jak i inne edytory są po to, żeby sobie z IntelliSense móc pisać

0

Nie próbowałbym instalatorów ze stron typu programosy :) VS Code to taki edytor, który IDE staje się dzięki wtyczkom. Microsoft zapewnia bazową platformę, a resztę dostarcza społeczność. OmniSharp zapewnia podstawową analizę kodu, a resztę trzeba ogarniać w plikach launch.json czy przez konsolę. Pod tym względem (i wieloma innymi) VS Code to proteza. Póki co nie zanosi się na to, żeby Microsoft miał zamiar wydać pełnoprawne IDE na Linuksa.

0
mar-ek1 napisał(a):

Z tego co wiem to użytkownicy Linuxa często preferują narzędzia konsolowe (tak wnioskuję po dyskusjach na ten temat) i dokładnie taki styl pracy z dotnetem Microsoft proponuje właśnie pod Linuxem.

Przecież dotnet new to jest standardowy sposób tworzenia solucji i projektów .NET Core na każdym systemie operacyjnym. Na dodatek działa jakieś 750 razy szybciej niż niektóre pełnoprawne IDE od Microsoftu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0