Samouczek: instalowanie i używanie lokalnego narzędzia platformy .NET przy użyciu interfejsu wiersza polecenia platformy .NET

Artykuł dotyczy: ✔️ .NET 8 SDK i nowszych wersji

W tym samouczku przedstawiono sposób instalowania i używania narzędzia lokalnego. Używasz narzędzia, które tworzysz w pierwszym samouczku tej serii.

Warunki wstępne

  • Ukończ pierwszy samouczek tej serii.
  • Zestaw .NET 10.0.100 SDK lub nowszy (dla dnx) — opcjonalny, ale zalecany.

Tworzenie pliku manifestu

Aby zainstalować narzędzie tylko do dostępu lokalnego (dla bieżącego katalogu i podkatalogów), należy go dodać do pliku manifestu.

Z folderu dotnet-env przejdź o jeden poziom wyżej do folderu repozytorium.

cd ..

Utwórz plik manifestu, uruchamiając polecenie dotnet new:

dotnet new tool-manifest

Dane wyjściowe wskazują pomyślne utworzenie pliku.

The template "Dotnet local tool manifest file" was created successfully.

Plik .config/dotnet-tools.json nie ma jeszcze w nim narzędzi:

{
  "version": 1,
  "isRoot": true,
  "tools": {}
}

Narzędzia wymienione w pliku manifestu są dostępne dla bieżącego katalogu i podkatalogów. Bieżący katalog to ten, który zawiera katalog .config z plikiem manifestu.

Gdy używasz polecenia wiersza poleceń, które odwołuje się do narzędzia lokalnego, SDK wyszukuje plik manifestu w bieżącym katalogu i katalogach nadrzędnych. Jeśli znajdzie plik manifestu, ale plik nie zawiera narzędzia, do którego jest odniesienie, kontynuuje wyszukiwanie w górę przez katalogi nadrzędne. Wyszukiwanie kończy się, gdy znajdzie narzędzie, do którego się odwołuje, lub znajdzie plik manifestu z isRoot ustawionym na true.

Instalowanie aplikacji dotnet-env jako narzędzia lokalnego (tradycyjne podejście)

Zainstaluj narzędzie z pakietu utworzonego w pierwszym samouczku:

dotnet tool install --add-source ./dotnet-env/nupkg dotnet-env

To polecenie dodaje narzędzie do pliku manifestu utworzonego w poprzednim kroku. Dane wyjściowe polecenia pokazują, w którym pliku manifestu znajduje się nowo zainstalowane narzędzie:

You can invoke the tool from this directory using the following command:
'dotnet tool run dotnet-env' or 'dotnet dotnet-env'
Tool 'dotnet-env' (version '1.0.0') was successfully installed.
Entry is added to the manifest file /home/name/repository/.config/dotnet-tools.json

Plik .config/dotnet-tools.json ma teraz jedno narzędzie:

{
  "version": 1,
  "isRoot": true,
  "tools": {
    "dotnet-env": {
      "version": "1.0.0",
      "commands": [
        "dotnet-env"
      ]
    }
  }
}

Korzystanie z zainstalowanego narzędzia lokalnego

Po zainstalowaniu jako narzędzia lokalnego można go wywołać na wiele sposobów:

  • Uruchom narzędzie bezpośrednio przy użyciu polecenia dnx:

    dnx dotnet-env --add-source ./nupkg
    

    Uwaga / Notatka

    Podczas korzystania z dnx z lokalnym manifestem narzędzi, automatycznie używa wersji określonej w manifeście.

  • Używając dotnet dotnet-env:

    dotnet dotnet-env
    
  • Korzystanie z dotnet tool run

    dotnet tool run dotnet-env
    

Przywracanie lokalnego narzędzia zainstalowanego przez inne osoby

Zazwyczaj narzędzie lokalne jest instalowane w katalogu głównym repozytorium. Po zaewidencjonowaniu pliku manifestu w repozytorium, inni programiści mogą pobrać najnowszy plik manifestu. Aby zainstalować wszystkie narzędzia wymienione w pliku manifestu, można uruchomić jedno polecenie dotnet tool restore.

  1. Otwórz plik .config/dotnet-tools.json i zastąp zawartość następującym kodem JSON:

    {
      "version": 1,
      "isRoot": true,
      "tools": {
        "dotnet-env": {
          "version": "1.0.0",
          "commands": [
            "dotnet-env"
          ]
        },
        "dotnetsay": {
          "version": "2.1.3",
          "commands": [
            "dotnetsay"
          ]
        }
      }
    }
    
  2. Zapisz zmiany.

    Wprowadzenie tej zmiany jest takie samo jak pobranie najnowszej wersji z repozytorium po zainstalowaniu przez inną osobę pakietu dotnetsay dla katalogu projektu.

  3. Uruchom polecenie dotnet tool restore.

    dotnet tool restore
    

    Polecenie generuje dane wyjściowe podobne do następującego przykładu:

    Tool 'dotnet-env' (version '1.0.0') was restored. Available commands: dotnet-env
    Tool 'dotnetsay' (version '2.1.3') was restored. Available commands: dotnetsay
    Restore was successful.
    
  4. Sprawdź, czy narzędzia są dostępne:

    dotnet tool list
    

    Dane wyjściowe to lista pakietów i poleceń, podobnie jak w poniższym przykładzie:

    Package Id         Version      Commands       Manifest
    --------------------------------------------------------------------------------------------
    dotnet-env         1.0.0        dotnet-env     /home/name/repository/.config/dotnet-tools.json
    dotnetsay          2.1.3        dotnetsay      /home/name/repository/.config/dotnet-tools.json
    
  5. Przetestuj narzędzia:

    dotnet tool run dotnetsay hello from dotnetsay
    dotnet tool run dotnet-env
    

Aktualizowanie narzędzia lokalnego

Zainstalowana wersja lokalnego narzędzia dotnetsay to 2.1.3. Użyj polecenia dotnet tool update, aby zaktualizować narzędzie do najnowszej wersji.

dotnet tool update dotnetsay

Dane wyjściowe wskazują nowy numer wersji:

Tool 'dotnetsay' was successfully updated from version '2.1.3' to version '3.0.3'
(manifest file /home/name/repository/.config/dotnet-tools.json).

Polecenie update znajduje pierwszy plik manifestu zawierający identyfikator pakietu i aktualizuje go. Jeśli w żadnym pliku manifestu nie ma takiego identyfikatora pakietu, który znajduje się w zakresie wyszukiwania, zestaw SDK dodaje nowy wpis do najbliższego pliku manifestu. Zakres wyszukiwania jest rozwijany przez katalogi nadrzędne do momentu znalezienia pliku manifestu z isRoot = true.

Usuwanie narzędzi lokalnych

Usuń zainstalowane narzędzia, uruchamiając polecenie dotnet tool uninstall:

dotnet tool uninstall dotnet-env
dotnet tool uninstall dotnetsay

Rozwiązywanie problemów

Jeśli podczas wykonywania samouczka zostanie wyświetlony komunikat o błędzie, zobacz Rozwiązywanie problemów z użyciem narzędzi platformy .NET.

Zobacz też

Aby uzyskać więcej informacji, zobacz .NET tools.