Note
これは、この記事の最新バージョンではありません。 現在のリリースについては、 この記事の .NET 10 バージョンを参照してください。
Warning
このバージョンの ASP.NET Core はサポート対象から除外されました。 詳細については、 .NET および .NET Core サポート ポリシーを参照してください。 現在のリリースについては、 この記事の .NET 10 バージョンを参照してください。
dotnet-grpc は、.NET gRPC プロジェクト内で Protobuf (.proto) 参照を管理するための .NET グローバル ツールです。 このツールを使用して、Protobuf 参照の追加、更新、削除、および一覧表示を行うことができます。
Installation
dotnet-grpc
.NET グローバル ツールをインストールするには、次のコマンドを実行します。
dotnet tool install -g dotnet-grpc
Note
既定では、インストールする .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.Client、Grpc.Tools、および Google.Protobuf パッケージは、コンソール アプリに追加されます。
ファイルの追加
add-file コマンドは、Protobuf 参照としてディスクにローカル ファイルを追加するために使用します。 指定するファイル パス:
- 現在のディレクトリに対する相対パスでも絶対パスでもかまいません。
- パターン ベースのファイル glob のためにワイルド カードを含めることができます。
いずれかのファイルがプロジェクト ディレクトリの外部にある場合、Visual Studio で Link フォルダーの下にファイルを表示するために Protos 要素が追加されます。
Usage
dotnet-grpc add-file [options] <files>...
Arguments
| Argument | Description |
|---|---|
| files | protobuf ファイルの参照。 ローカル protobuf ファイルの場合は、glob へのパスを指定できます。 |
オプション
| ショートオプション | 長いオプション | Description |
|---|---|---|
| -p | --project | 操作するプロジェクト ファイルへのパス。 ファイルが指定されていない場合、コマンドを実行すると現在のディレクトリが検索されます。 |
| -s | --services | 生成する必要がある gRPC サービスの種類。
Default が指定された場合、Web プロジェクトには Both が使用され、Web プロジェクト以外には Client が使用されます。 指定できる値は、Both、Client、Default、None、Server です。 |
| -i | --additional-import-dirs | protobuf ファイルのインポートを解決するときに使用する追加のディレクトリ。 これはセミコロンで区切られたパスの一覧です。 |
| --access | 生成される C# クラスに使用するアクセス修飾子。 既定値は Public です。 指定できる値は、Internal と Public です。 |
URL の追加
add-url コマンドは、ソース URL で指定されたリモート ファイルを Protobuf 参照として追加するために使用します。 ファイル パスを指定して、リモート ファイルをダウンロードする場所を指定する必要があります。 ファイル パスは、現在のディレクトリに対する相対パスでも絶対パスでもかまいません。 ファイル パスがプロジェクト ディレクトリの外部にある場合、Visual Studio で Link 仮想フォルダーの下にファイルを表示するために Protos 要素が追加されます。
Usage
dotnet-grpc add-url [options] <url>
Arguments
| Argument | Description |
|---|---|
| url | リモート protobuf ファイルへの URL。 |
オプション
| ショートオプション | 長いオプション | Description |
|---|---|---|
| -o | --output | リモート protobuf ファイルのダウンロード パスを指定します。 これは必須オプションです。 |
| -p | --project | 操作するプロジェクト ファイルへのパス。 ファイルが指定されていない場合、コマンドを実行すると現在のディレクトリが検索されます。 |
| -s | --services | 生成する必要がある gRPC サービスの種類。
Default が指定された場合、Web プロジェクトには Both が使用され、Web プロジェクト以外には Client が使用されます。 指定できる値は、Both、Client、Default、None、Server です。 |
| -i | --additional-import-dirs | protobuf ファイルのインポートを解決するときに使用する追加のディレクトリ。 これはセミコロンで区切られたパスの一覧です。 |
| --access | 生成される C# クラスに使用するアクセス修飾子。 既定値は Publicにする必要があります。 指定できる値は、Internal と Public です。 |
Remove
remove コマンドは、.csproj ファイルから Protobuf 参照を削除するために使用します。 このコマンドでは、引数としてパス引数とソース URL を受け取ります。 ツール:
- Protobuf 参照のみが削除されます。
- 元はリモート URL からダウンロードされた場合でも
.protoファイルは削除されません。
Usage
dotnet-grpc remove [options] <references>...
Arguments
| Argument | Description |
|---|---|
| references | 削除する protobuf 参照の URL またはファイル パス。 |
オプション
| ショートオプション | 長いオプション | Description |
|---|---|---|
| -p | --project | 操作するプロジェクト ファイルへのパス。 ファイルが指定されていない場合、コマンドを実行すると現在のディレクトリが検索されます。 |
Refresh
refresh コマンドは、ソース URL の最新のコンテンツを使用してリモート参照を更新するために使用します。 ダウンロード ファイル パスとソース URL の両方を使用して、更新する参照を指定できます。 Note:
- ローカル ファイルを更新する必要があるかどうかを特定するために、ファイル コンテンツのハッシュが比較されます。
- タイムスタンプ情報は比較されません。
更新が必要な場合、ツールの実行により、常にローカル ファイルがリモート ファイルに置き換えられます。
Usage
dotnet-grpc refresh [options] [<references>...]
Arguments
| Argument | Description |
|---|---|
| references | 更新する必要があるリモート protobuf 参照への URL またはファイル パス。 この引数を空のままにすると、すべてのリモート参照が更新されます。 |
オプション
| ショートオプション | 長いオプション | Description |
|---|---|---|
| -p | --project | 操作するプロジェクト ファイルへのパス。 ファイルが指定されていない場合、コマンドを実行すると現在のディレクトリが検索されます。 |
| --dry-run | どの新しいコンテンツもダウンロードせずに更新されるファイルの一覧を出力します。 |
List
list コマンドは、プロジェクト ファイル内のすべての Protobuf 参照を表示するために使用します。 列のすべての値が既定値であると、列が省略されることがあります。
Usage
dotnet-grpc list [options]
オプション
| ショートオプション | 長いオプション | Description |
|---|---|---|
| -p | --project | 操作するプロジェクト ファイルへのパス。 ファイルが指定されていない場合、コマンドを実行すると現在のディレクトリが検索されます。 |
その他のリソース
ASP.NET Core