Jump to content

# .NET (Polski)

3 languages

- English
- 日本語
- 中文（简体）

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:

- 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

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

- Strona domowa .NET
- .NET Foundation
- Przeglądarka API .NET

Category:

- Frameworks (Polski)