共用方式為


使用 dotnet-grpc 管理 Protobuf 參考

注意

這不是這篇文章的最新版本。 如需目前的版本,請參閱 本文的 .NET 9 版本。

警告

不再支援此版本的 ASP.NET Core。 如需詳細資訊,請參閱 .NET 和 .NET Core 支援原則。 如需目前版本,請參閱本文的 .NET 8 版本

重要

這些發行前產品的相關資訊在產品正式發行前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。

如需目前的版本,請參閱 本文的 .NET 9 版本。

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.ClientGrpc.ToolsGoogle.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 專案。 接受的值是 BothClientDefaultNoneServer
-i --additional-import-dirs 要在解析 Protobuf 檔案匯入時使用的其他目錄。 這是以分號分隔的路徑清單。
--access 要用於所產生 C# 類別的存取修飾詞。 預設值是 Public。 接受的值是 InternalPublic

新增 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 專案。 接受的值是 BothClientDefaultNoneServer
-i --additional-import-dirs 要在解析 Protobuf 檔案匯入時使用的其他目錄。 這是以分號分隔的路徑清單。
--access 要用於所產生 C# 類別的存取修飾詞。 預設值為 Public。 接受的值是 InternalPublic

移除

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 要操作之專案檔的路徑。 若未指定檔案,此命令會在當前的目錄中搜尋一個檔案。

其他資源