.NET (Polski)

From ArchWiki
Translation Status: This article is a localized version of .NET. Last translation date: 2024-05-01. You can help to synchronize the translation, if there were changes in the English version.

.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.

Tip: Dodaj ~/.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:

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

Error MSB4019: The imported project "/usr/share/dotnet/sdk/.../Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Common.targets" was not found. Confirm that the expression in the Import declaration ... is correct, and that the file exists on disk.

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.

Zobacz także