Note
這不是這篇文章的最新版本。 關於目前版本,請參閱 本文的 .NET 10 版本。
Warning
不再支援此版本的 ASP.NET Core。 如需詳細資訊,請參閱 .NET 和 .NET Core 支持原則。 如需目前的版本,請參閱 本文的 .NET 9 版本。
dotnet-grpc 是 .NET 全域工具,用於管理 .NET gRPC 專案中的 Protobuf (.proto) 參考。 此工具可以用來新增、重新整理、移除和列出 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 參考。 提供的檔案路徑:
- 可以相對於目前目錄或是絕對路徑。
- 可能包含模式型檔案萬用字元的萬用字元。
如果有任何檔案位於專案目錄外部,則會新增 Link 元素,以顯示 Visual Studio 中 Protos 資料夾下方的檔案。
Usage
dotnet-grpc add-file [options] <files>...
Arguments
| Argument | Description |
|---|---|
| files | Protobuf 檔案參考。 這些可以是本機 Protobuf 檔案的 glob 路徑。 |
選項
| 短期選擇權 | 多頭期權 | Description |
|---|---|---|
| -p | --project | 要操作之專案檔的路徑。 若未指定檔案,此命令會在當前的目錄中搜尋一個檔案。 |
| -s | --services | 應該產生的 gRPC 服務類型。 如果指定 Default,則 Both 用於 Web 專案,而 Client 用於非 Web 專案。 接受的值是 Both、Client、Default、None、Server。 |
| -i | --additional-import-dirs | 要在解析 Protobuf 檔案匯入時使用的其他目錄。 這是以分號分隔的路徑清單。 |
| --access | 要用於所產生 C# 類別的存取修飾詞。 預設值是 Public。 接受的值是 Internal 和 Public。 |
新增 URL
add-url 命令用來將來源 URL 所指定的遠端檔案新增為 Protobuf 參考。 必須提供檔案路徑,以指定要下載遠端檔案的位置。 檔案路徑可以相對於目前目錄或是絕對路徑。 如果檔案路徑位於專案目錄外部,則會新增 Link 元素,以顯示 Visual Studio 中虛擬資料夾 Protos 下方的檔案。
Usage
dotnet-grpc add-url [options] <url>
Arguments
| Argument | Description |
|---|---|
| url | 遠端 Protobuf 檔案的 URL。 |
選項
| 短期選擇權 | 多頭期權 | Description |
|---|---|---|
| -o | --output | 指定遠端 Protobuf 檔案的下載路徑。 這是必要選項。 |
| -p | --project | 要操作之專案檔的路徑。 若未指定檔案,此命令會在當前的目錄中搜尋一個檔案。 |
| -s | --services | 應該產生的 gRPC 服務類型。 如果指定 Default,則 Both 用於 Web 專案,而 Client 用於非 Web 專案。 接受的值是 Both、Client、Default、None、Server。 |
| -i | --additional-import-dirs | 要在解析 Protobuf 檔案匯入時使用的其他目錄。 這是以分號分隔的路徑清單。 |
| --access | 要用於所產生 C# 類別的存取修飾詞。 預設值為 Public。 接受的值是 Internal 和 Public。 |
Remove
remove 命令用來從 .csproj 檔案中移除 Protobuf 參考。 此命令接受路徑引數和來源 URL 作為引數。 工具:
- 只會移除 Protobuf 參考。
- 請不要刪除
.proto檔案,即使其原本是從遠端 URL 下載也是一樣。
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 | 要操作之專案檔的路徑。 若未指定檔案,此命令會在當前的目錄中搜尋一個檔案。 |