使用 dotnet-grpc 管理 Protobuf 參考
注意
這不是這篇文章的最新版本。 如需目前的版本,請參閱 本文的 .NET 9 版本。
警告
不再支援此版本的 ASP.NET Core。 如需詳細資訊,請參閱 .NET 和 .NET Core 支援原則。 如需目前版本,請參閱本文的 .NET 8 版本。
dotnet-grpc
是 .NET Core 全域工具,用於管理 .NET gRPC 專案內的 Protobuf (.proto
) 參考。 此工具可以用來新增、重新整理、移除和列出 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.Client
、Grpc.Tools
和 Google.Protobuf
套件新增至主控台應用程式。
新增檔案
add-file
命令用來將磁碟上的本機檔案新增為 Protobuf 參考。 提供的檔案路徑:
- 可以相對於目前目錄或是絕對路徑。
- 可能包含模式型檔案萬用字元的萬用字元。
如果有任何檔案位於專案目錄外部,則會新增 Link
元素,以顯示 Visual Studio 中 Protos
資料夾下方的檔案。
使用方式
dotnet-grpc add-file [options] <files>...
引數
Argument | 描述 |
---|---|
files | Protobuf 檔案參考。 這些可以是本機 Protobuf 檔案的 glob 路徑。 |
選項。
簡短選項 | 完整選項 | 描述 |
---|---|---|
-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
下方的檔案。
使用方式
dotnet-grpc add-url [options] <url>
引數
Argument | 描述 |
---|---|
url | 遠端 Protobuf 檔案的 URL。 |
選項。
簡短選項 | 完整選項 | 描述 |
---|---|---|
-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
命令用來從 .csproj
檔案中移除 Protobuf 參考。 此命令接受路徑引數和來源 URL 作為引數。 此工具:
- 只會移除 Protobuf 參考。
- 請不要刪除
.proto
檔案,即使其原本是從遠端 URL 下載也是一樣。
使用方式
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 | 要操作之專案檔的路徑。 若未指定檔案,此命令會在當前的目錄中搜尋一個檔案。 |