.NET (Polski)
.NET (wcześniej nazywany .NET Core) to framework oprogramowania FOSS firmy Microsoft dla języków C#, Visual Basic i F#. Został zaprojektowany tak, aby był wieloplatformowy, modułowy i odpowiedni dla nowoczesnych aplikacji, w przeciwieństwie do swojego poprzednika, .NET Framework.
Kod źródłowy .NET jest dostępny pod adresem dotnet/dotnet w serwisie GitHub.
Instalacja
Jeśli chcesz uruchamiać tylko aplikacje .NET, zainstaluj pakiet dotnet-runtime.
Aby tworzyć aplikacje z .NET, zainstaluj również dotnet-sdk.
Wreszcie, aby tworzyć dynamiczne strony internetowe, aplikacje i usługi przy użyciu ASP.NET Core, zainstaluj aspnet-runtime.
Microsoft zaleca używanie Visual Studio Code - IDE opartego na Electronie do tworzenia i debugowania aplikacji .NET.
~/.dotnet/tools
do PATH
, inaczej narzędzia dotnet nie będą dostępne z poziomu powłoki.Aby zamiast tego użyć .NET 6.0, należy dodać do powyższego pakietu "-6.0", na przykład dotnet-runtime-6.0, dotnet-sdk-6.0 i aspnet-runtime-6.0.
Różnice w wersjach
Zestawy .NET SDK są publikowane w ramach kilku schematów wersji. Tylko wersje SDK 1xx
mogą być budowane ze źródeł i będą dostępne w oficjalnych repozytoriach. Jeśli potrzebujesz innej wersji, będziesz potrzebować jednego z pakietów *-bin
z AUR.
Ręczna instalacja wielu wersji
Można zainstalować wiele wersji .NET SDK lub środowiska uruchomieniowego obok siebie za pomocą skryptu dotnet-install.sh dostarczonego przez .NET Foundation. Dokumentację skryptu można znaleźć tutaj.
Na przykład, to polecenie zainstaluje najnowszą wersję znalezioną w kanale "STS" (Standard Term Support) w /usr/share/dotnet
:
# ./dotnet-install.sh --install-dir /usr/share/dotnet -channel STS -version latest
Możesz najpierw przeprowadzić symulację instalacji, używając flagi -Dryrun
.
Po zainstalowaniu można zweryfikować dostępne zestawy SDK:
$ dotnet --list-sdks
2.2.108 [/usr/share/dotnet/sdk] 3.0.103 [/usr/share/dotnet/sdk]
$ dotnet --version
3.0.103
Usuwanie wersji zainstalowanej ręcznie
Możesz chcieć usunąć przestarzałe wersje zainstalowane za pomocą dotnet-install.sh
. Zautomatyzowane narzędzie .NET Uninstall Tool nadal nie obsługuje systemu Linux, więc deinstalacja musi zostać przeprowadzona ręcznie.
$ dotnet --list-sdks
5.0.100 [/usr/share/dotnet/sdk] 5.0.102 [/usr/share/dotnet/sdk]
Dezinstalacja sdk:
$ SDK_VERSION="5.0.100" $ DOTNET_UNINSTALL_PATH="/usr/share/dotnet" # rm -rf $DOTNET_UNINSTALL_PATH/sdk/$SDK_VERSION
Za pomocą dotnet-install.sh
instalowany jest również host dotnet i współdzielone pakiety, które mogą wymagać dodatkowego usunięcia w zależności od wydania.
Pełna deinstalacja wersji .NET (sdk, host, współdzielone pakiety):
$ SDK_VERSION="5.0.100" $ DOTNET_VERSION="5.0.0" $ DOTNET_UNINSTALL_PATH="/usr/share/dotnet" # rm -rf $DOTNET_UNINSTALL_PATH/sdk/$SDK_VERSION # rm -rf $DOTNET_UNINSTALL_PATH/shared/Microsoft.NETCore.App/$DOTNET_VERSION # rm -rf $DOTNET_UNINSTALL_PATH/shared/Microsoft.AspNetCore.All/$DOTNET_VERSION # rm -rf $DOTNET_UNINSTALL_PATH/shared/Microsoft.AspNetCore.App/$DOTNET_VERSION # rm -rf $DOTNET_UNINSTALL_PATH/host/fxr/$DOTNET_VERSION
Instalacja wielu wersji za pośrednictwem AUR
Niektóre pakiety AUR dotnet są przeznaczone do instalacji obok siebie. Potrzebny jest tylko jeden pakiet hosta (dotnet-host-binAUR lub dotnet-host) zawierający narzędzie wiersza poleceń, a obok niego można zainstalować dowolne z dostępnych zestawów SDK i środowisk uruchomieniowych (najnowsze pakiety wszystkich głównych wersji). Lista kompatybilnych pakietów:
- dotnet-host-binAUR, dotnet-runtime-binAUR, aspnet-runtime-binAUR, dotnet-sdk-binAUR
- dotnet-host-preview-binAUR, dotnet-runtime-preview-binAUR, aspnet-runtime-preview-binAUR, dotnet-sdk-preview-binAUR
- dotnet-runtime-7.0-binAUR, aspnet-runtime-7.0-binAUR, dotnet-sdk-7.0-binAUR,
- dotnet-runtime-3.0AUR, aspnet-runtime-3.0AUR, dotnet-sdk-3.0AUR,
- dotnet-runtime-2.2AUR, aspnet-runtime-2.2AUR, dotnet-sdk-2.2AUR, dotnet-sdk-2.2-vs2017AUR
- dotnet-runtime-2.1AUR, aspnet-runtime-2.1AUR, dotnet-sdk-2.1AUR
Instalacja PowerShell Core
PowerShell Core można również zainstalować jako narzędzie "globalne" [1] [2].
# dotnet tool install --global PowerShell
aby zaktualizować do bieżącej wersji
# dotnet tool update --global PowerShell
Zobacz także PowerShell.
Telemetria
Kompilacja Microsoft .NET SDK domyślnie zbiera dane telemetryczne. Pakiety AUR .NET SDK (warianty *-bin
) są oparte na kompilacjach .NET firmy Microsoft. Składniki środowiska uruchomieniowego .NET nie zbierają danych telemetrycznych w żadnym scenariuszu.
Kompilacje społecznościowe (w tym te w Arch; począwszy od .NET 7) nie zbierają danych telemetrycznych, zgodnie ze zmianą w .NET SDK wprowadzoną przez Red Hat.
Telemetria może być wyłączona przez ustawienie zmiennej środowiskowej DOTNET_CLI_TELEMETRY_OPTOUT=1
.
Auto-uzupełnianie
Wszystkie programy dotnet, które używają System.CommandLine.Parser
do analizowania swoich argumentów, obsługują autouzupełnianie. Włączenie go wymaga jedynie dodania kilku wierszy do pliku .bashrc
/ .zshrc
. / .zshrc
, jak opisano w ich dokumentacji. Instrukcje dla samodzielnych plików binarnych znajdują się tutaj.
Rozwiązywanie problemów
It was not possible to find any compatible framework version
Tłumaczenie: Nie udało się znaleźć żadnej kompatybilnej wersji frameworka
Jeśli pojawi się następujący błąd podczas próby uruchomienia nowo utworzonego projektu, nie trzeba już ustawiać zmiennej DOTNET_ROOT
, jak opisano w rozwiązaniach różnych problemów GitHub. Pakiet dotnet Archa (od wersji 3.1) instaluje go w zalecanej przez Microsoft lokalizacji /usr/share/dotnet
.
$ dotnet run
It was not possible to find any compatible framework version The framework 'Microsoft.AspNetCore.App', version '3.1.0' was not found. - No frameworks were found. You can resolve the problem by installing the specified framework and/or SDK. The specified framework can be found at: - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=3.1.0&arch=x64&rid=arch-x64
Jest to spowodowane tym, że środowisko uruchomieniowe jest dostarczane jako oddzielny pakiet w Arch. Musisz tylko upewnić się, że masz zainstalowany pakiet aspnet-runtime.
"the required library libhostfxr.so could not be found" error
Tłumaczenie: błąd "nie można znaleźć wymaganej biblioteki libhostfxr.so"
Niektóre narzędzia dotnet SDK (na przykład libman, dotnet-watch itp.) mogą oczekiwać, że zmienna środowiskowa DOTNET_ROOT
jest wstępnie skonfigurowana. Jeśli tak nie jest, można zaobserwować błąd taki jak ten: [3].
A fatal error occurred, the required library libhostfxr.so could not be found. If this is a self-contained application, that library should exist in [/home/my_user/.dotnet/tools/.store/microsoft.web.librarymanager.cli/1.0.172/microsoft.web.librarymanager.cli/1.0.172/tools/netcoreapp2.1/any/]. If this is a framework-dependent application, install the runtime in the default location [/usr/share/dotnet] or use the DOTNET_ROOT environment variable to specify the runtime location.
Obejściem jest ręczne wyeksportowanie DOTNET_ROOT
w powłoce:
~/.bashrc
export DOTNET_ROOT=/opt/dotnet
Tłumaczenie: Błąd MSB4019: Zaimportowany projekt "/usr/share/dotnet/sdk/.../Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Common.targets" nie został znaleziony. Upewnij się, że wyrażenie w deklaracji importu ... jest poprawne, a plik istnieje na dysku.
Dzieje się tak po aktualizacji. Aktualnie uruchomiona powłoka / sesja logowania przechowuje zmienne środowiskowe dla wersji dotnet SDK innej niż zainstalowana. Ponowne uruchomienie powłoki lub ponowne zalogowanie powinno to naprawić.
SDK specified could not be found
Tłumaczenie: Nie można znaleźć określonego zestawu SDK.
Uważa się, że jest to spowodowane konfliktem między bibliotekami Mono i MSBuild SDK a bibliotekami dotnet. Aby to naprawić, należy ręcznie wyeksportować ścieżkę w powłoce (zastępując numer wersji w razie potrzeby), np:
~/.bashrc
export MSBuildSDKsPath=$( echo /usr/share/dotnet/sdk/3.*/Sdks );
polecenie dotnet nadal zainstalowane
Zainstalowane pakiety nie odinstalowują dotnet-host, więc odinstaluj dotnet-host.