チュートリアル: .NET CLI を使って .NET ローカル ツールをインストールして使用する

この記事の対象: ✔️ .NET Core 3.0 SDK 以降のバージョン

このチュートリアルでは、ローカル ツールをインストールして使用する方法について説明します。 このシリーズの最初のチュートリアルで作成されるツールを使用します。

必須コンポーネント

  • このシリーズの最初のチュートリアルを完了します。

  • .NET Core 2.1 ランタイムをインストールします。

    このチュートリアルでは、.NET Core 2.1 を対象とするツールをインストールして使用するため、お使いのコンピューター上に該当のランタイムがインストールされている必要があります。 2\.1 ランタイムをインストールするには、.NET Core 2.1 のダウンロード ページにアクセスして、 [Run apps - Runtime](アプリの実行 - ランタイム) 列でランタイム インストールのリンクを見つけます。

マニフェスト ファイルの作成

ローカル アクセス専用のツール (現在のディレクトリとサブディレクトリ用) をインストールするには、マニフェスト ファイルに追加する必要があります。

microsoft.botsay フォルダーから、1 つ上のレベルである repository フォルダーに移動します。

cd ..

dotnet new コマンドを実行して、マニフェスト ファイルを作成します。

dotnet new tool-manifest

出力によって、ファイルが正常に作成されたことが示されます。

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

.config/dotnet-tools.json ファイル内には、まだツールはありません。

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

マニフェスト ファイルに示されているツールは、現在のディレクトリとサブディレクトリで使用できます。 現在のディレクトリは、マニフェスト ファイルがある .config ディレクトリが含まれているディレクトリです。

ローカル ツールを参照する CLI コマンドを使用すると、SDK では現在のディレクトリおよび親ディレクトリ内でマニフェスト ファイルを検索します。 マニフェスト ファイルが見つかっても、参照されたツールがファイルに含まれていない場合は、親ディレクトリを遡って引き続き検索されます。 検索は、参照されたツールが見つかったとき、または isRoottrue に設定されているマニフェスト ファイルが見つかったときに終了します。

ローカル ツールとして botsay をインストールする

最初のチュートリアルで作成したパッケージからツールをインストールします。

dotnet tool install --add-source ./microsoft.botsay/nupkg microsoft.botsay

このコマンドでは、前の手順で作成したマニフェスト ファイルにツールを追加します。 コマンドの出力は、新しくインストールされたツールがどのマニフェスト ファイルに含まれているかを示しています。

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

.config/dotnet-tools.json ファイルには現在、1 つのツールがあります。

{
  "version": 1,
  "isRoot": true,
  "tools": {
    "microsoft.botsay": {
      "version": "1.0.0",
      "commands": [
        "botsay"
      ]
    }
  }
}

ツールの使用

repository フォルダーから dotnet tool run コマンドを実行して、ツールを起動します。

dotnet tool run botsay hello from the bot

他のユーザーによってインストールされたローカル ツールを復元する

通常は、リポジトリのルート ディレクトリにローカル ツールをインストールします。 マニフェスト ファイルをリポジトリにチェックインすると、他の開発者が最新のマニフェスト ファイルを取得できるようになります。 マニフェスト ファイルに一覧表示されたすべてのツールをインストールするには、単一の dotnet tool restore コマンドを実行できます。

  1. .config/dotnet-tools.json ファイルを開き、内容を次の JSON に置き換えます。

    {
      "version": 1,
      "isRoot": true,
      "tools": {
        "microsoft.botsay": {
          "version": "1.0.0",
          "commands": [
            "botsay"
          ]
        },
        "dotnetsay": {
          "version": "2.1.3",
          "commands": [
            "dotnetsay"
          ]
        }
      }
    }
    
  2. 変更内容を保存します。

    この変更を行うことは、他のユーザーがプロジェクト ディレクトリに対してパッケージ dotnetsay をインストールした後に、リポジトリから最新バージョンを取得することと同じです。

  3. dotnet tool restore コマンドを実行します。

    dotnet tool restore
    

    コマンドによって、次の例のような出力が生成されます。

    Tool 'microsoft.botsay' (version '1.0.0') was restored. Available commands: botsay
    Tool 'dotnetsay' (version '2.1.3') was restored. Available commands: dotnetsay
    Restore was successful.
    
  4. ツールが使用可能であることを確認します。

    dotnet tool list
    

    次の例のように、出力はパッケージとコマンドの一覧になります。

    Package Id      Version      Commands       Manifest
    --------------------------------------------------------------------------------------------
    microsoft.botsay 1.0.0        botsay         /home/name/repository/.config/dotnet-tools.json
    dotnetsay        2.1.3        dotnetsay      /home/name/repository/.config/dotnet-tools.json
    
  5. ツールをテストします。

    dotnet tool run dotnetsay hello from dotnetsay
    dotnet tool run botsay hello from botsay
    

ローカル ツールを更新する

インストールされているローカルツール dotnetsay のバージョンは 2.1.3 です。 dotnet tool update コマンドを使用して、ツールを最新バージョンに更新します。

dotnet tool update dotnetsay

出力には、新しいバージョン番号が示されます。

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

update コマンドでは、パッケージ ID を含む最初のマニフェスト ファイルを検索して、それを更新します。 検索のスコープ内にあるマニフェスト ファイルにこのようなパッケージ ID がない場合、SDK では最も近いマニフェスト ファイルに新しいエントリを追加します。 isRoot = true のマニフェスト ファイルが見つかるまで、検索のスコープとして親ディレクトリを遡ります。

ローカル ツールを削除する

dotnet tool uninstall コマンドを実行して、インストールされたツールを削除します。

dotnet tool uninstall microsoft.botsay
dotnet tool uninstall dotnetsay

トラブルシューティング

チュートリアルの実行中にエラー メッセージが表示された場合は、「.NET ツールの使用に関する問題のトラブルシューティング」を参照してください。

関連項目

詳細については、.NET ツールに関するページを参照してください。