dotnet-grpc を使用して Protobuf 参照を管理する

dotnet-grpc は、.NET gRPC プロジェクト内の Protobuf (.proto) 参照を管理するための .NET Core グローバル ツールです。 このツールを使用して、Protobuf 参照の追加、更新、削除、および一覧表示を行うことができます。

インストール

dotnet-grpc.NET Core グローバル ツールをインストールするには、次のコマンドを実行します。

dotnet tool install -g dotnet-grpc

注意

既定では、インストールする .NET バイナリのアーキテクチャは、現在実行中の OS アーキテクチャを表します。 別の OS アーキテクチャを指定するには、「dotnet tool install, --arch option」を参照してください。 詳細については、GitHub イシュー dotnet/AspNetCore.Docs #29262 を参照してください。

参照の追加

dotnet-grpc を使用し、<Protobuf /> 項目として Protobuf 参照を .csproj ファイルに追加できます。

<Protobuf Include="Protos\greet.proto" GrpcServices="Server" />

Protobuf 参照は、C# クライアントやサーバーの資産を生成するために使用されます。 dotnet-grpc ツールは以下のことが可能です。

  • ディスク上のローカル ファイルから Protobuf 参照を作成します。
  • URL で指定されたリモート ファイルから Protobuf 参照を作成します。
  • プロジェクトに正しい gRPC パッケージの依存関係が追加されていることを確認します。

たとえば、Grpc.AspNetCore パッケージは Web アプリに追加されます。 Grpc.AspNetCore には、gRPC のサーバーおよびクライアントのライブラリと、ツールのサポートが含まれています。 または、gRPC クライアント ライブラリとツールのサポートのみが含まれる Grpc.Net.ClientGrpc.Tools、および Google.Protobuf パッケージは、コンソール アプリに追加されます。

ファイルの追加

add-file コマンドは、Protobuf 参照としてディスクにローカル ファイルを追加するために使用します。 指定するファイル パス:

  • 現在のディレクトリに対する相対パスでも絶対パスでもかまいません。
  • パターン ベースのファイル glob のためにワイルド カードを含めることができます。

いずれかのファイルがプロジェクト ディレクトリの外部にある場合、Visual Studio で Protos フォルダーの下にファイルを表示するために Link 要素が追加されます。

使用方法

dotnet-grpc add-file [options] <files>...

引数

Argument 説明
ファイル protobuf ファイルの参照。 ローカル protobuf ファイルの場合は、glob へのパスを指定できます。

オプション

短いオプション 長いオプション 説明
-p --project 操作するプロジェクト ファイルへのパス。 ファイルが指定されていない場合、コマンドを実行すると現在のディレクトリが検索されます。
-S --services 生成する必要がある gRPC サービスの種類。 Default が指定された場合、Web プロジェクトには Both が使用され、Web プロジェクト以外には Client が使用されます。 指定できる値は、BothClientDefaultNoneServer です。
-i --additional-import-dirs protobuf ファイルのインポートを解決するときに使用する追加のディレクトリ。 これはセミコロンで区切られたパスの一覧です。
--access 生成される C# クラスに使用するアクセス修飾子。 既定値は Public です。 指定できる値は、InternalPublic です。

URL の追加

add-url コマンドは、ソース URL で指定されたリモート ファイルを Protobuf 参照として追加するために使用します。 ファイル パスを指定して、リモート ファイルをダウンロードする場所を指定する必要があります。 ファイル パスは、現在のディレクトリに対する相対パスでも絶対パスでもかまいません。 ファイル パスがプロジェクト ディレクトリの外部にある場合、Visual Studio で Protos 仮想フォルダーの下にファイルを表示するために Link 要素が追加されます。

使用方法

dotnet-grpc add-url [options] <url>

引数

Argument 説明
url リモート protobuf ファイルへの URL。

オプション

短いオプション 長いオプション 説明
-o --output リモート protobuf ファイルのダウンロード パスを指定します。 これは必須オプションです。
-p --project 操作するプロジェクト ファイルへのパス。 ファイルが指定されていない場合、コマンドを実行すると現在のディレクトリが検索されます。
-S --services 生成する必要がある gRPC サービスの種類。 Default が指定された場合、Web プロジェクトには Both が使用され、Web プロジェクト以外には Client が使用されます。 指定できる値は、BothClientDefaultNoneServer です。
-i --additional-import-dirs protobuf ファイルのインポートを解決するときに使用する追加のディレクトリ。 これはセミコロンで区切られたパスの一覧です。
--access 生成される C# クラスに使用するアクセス修飾子。 既定値は Publicにする必要があります。 指定できる値は、InternalPublic です。

削除

remove コマンドは、.csproj ファイルから Protobuf 参照を削除するために使用します。 このコマンドでは、引数としてパス引数とソース URL を受け取ります。 ツール:

  • Protobuf 参照のみが削除されます。
  • 元はリモート URL からダウンロードされた場合でも .proto ファイルは削除されません。

使用方法

dotnet-grpc remove [options] <references>...

引数

Argument 説明
参照 削除する protobuf 参照の URL またはファイル パス。

オプション

短いオプション 長いオプション 説明
-p --project 操作するプロジェクト ファイルへのパス。 ファイルが指定されていない場合、コマンドを実行すると現在のディレクトリが検索されます。

最新の情報に更新

refresh コマンドは、ソース URL の最新のコンテンツを使用してリモート参照を更新するために使用します。 ダウンロード ファイル パスとソース URL の両方を使用して、更新する参照を指定できます。 メモ:

  • ローカル ファイルを更新する必要があるかどうかを特定するために、ファイル コンテンツのハッシュが比較されます。
  • タイムスタンプ情報は比較されません。

更新が必要な場合、ツールの実行により、常にローカル ファイルがリモート ファイルに置き換えられます。

使用方法

dotnet-grpc refresh [options] [<references>...]

引数

Argument 説明
参照 更新する必要があるリモート protobuf 参照への URL またはファイル パス。 この引数を空のままにすると、すべてのリモート参照が更新されます。

オプション

短いオプション 長いオプション 説明
-p --project 操作するプロジェクト ファイルへのパス。 ファイルが指定されていない場合、コマンドを実行すると現在のディレクトリが検索されます。
--dry-run どの新しいコンテンツもダウンロードせずに更新されるファイルの一覧を出力します。

リスト

list コマンドは、プロジェクト ファイル内のすべての Protobuf 参照を表示するために使用します。 列のすべての値が既定値であると、列が省略されることがあります。

使用方法

dotnet-grpc list [options]

オプション

短いオプション 長いオプション 説明
-p --project 操作するプロジェクト ファイルへのパス。 ファイルが指定されていない場合、コマンドを実行すると現在のディレクトリが検索されます。

その他の技術情報