第19篇 Protocol Buffers 編譯器生成proto文件

来源:https://www.cnblogs.com/chenshibao/p/18403721
-Advertisement-
Play Games

1.下載 Protocol Buffers 編譯器(protoc) 前往 Protocol Buffers GitHub Releases 頁面。在 "Assets" 下找到適合您系統的壓縮文件,通常為 protoc-{version}-win32.zip 或 protoc-{version}-wi ...


1.下載 Protocol Buffers 編譯器(protoc)

前往 Protocol Buffers GitHub Releases 頁面。在 "Assets" 下找到適合您系統的壓縮文件,通常為 protoc-{version}-win32.zip 或 protoc-{version}-win64.zip,其中 {version} 是版本號。

image

2.解壓縮 Protoc 編譯器

創建一個空文件夾,用於存放 protoc 編譯器,將下載的壓縮文件解壓到該文件夾。找到 bin 文件所在目錄,將路徑複製下來。
image

3.設置環境變數

滑鼠點擊桌面左下角的搜索框,然後輸入“環境變數”,搜索出來後雙擊滑鼠點進去。
在彈出的視窗中選擇“高級->環境變數”按鈕。在“用戶變數”里找到 path,雙擊打開。
點擊“新建”並添加 protoc 編譯器的路徑,將剛纔下載地址的 bin 路徑粘貼進去即可。
image

4.驗證安裝

我們現在打開控制台看一下變數是否配置成功,Win+R然後輸入 cmd,在命令行中運行命令protoc --version,如果看到版本信息,說明配置成功。
image

5.使用 protoc 編譯 .proto 文件 轉成C#,.cs文件

  1. 檢查 .NET SDK 安裝

     dotnet --version
    
  2. 重新安裝 gRPC C# 工具,先執行卸載,再裝

     dotnet tool uninstall -g dotnet-grpc
     dotnet tool install -g dotnet-grpc
    

image

  1. 手動下載和安裝【如果以上步驟無法安裝】
    如果通過 dotnet tool install 命令無法安裝 grpc_csharp_plugin.exe,你可以嘗試手動下載和安裝。

訪問 gRPC GitHub 倉庫。
導航到 grpc/src/csharp/Grpc.Tools 目錄。
下載適用於你操作系統的 Grpc.Tools 包。

  1. 手動安裝
    解壓下載的 Grpc.Tools 包。
    將解壓後的文件夾中的 tools 目錄複製到你希望安裝插件的位置。
    將插件路徑添加到系統的 PATH 環境變數中。

  2. 檢查環境變數
    確保 grpc_csharp_plugin.exe 的路徑已添加到系統的 PATH 環境變數中。你可以通過以下步驟檢查和配置環境變數:

Windows
右鍵點擊“此電腦”或“電腦”,選擇“屬性”。
點擊“高級系統設置”。
在“系統屬性”視窗中,點擊“環境變數”按鈕。
在“系統變數”部分,找到並選擇 Path 變數,然後點擊“編輯”。
確保 C:\Users<YourUsername>.dotnet\tools 路徑已添加到 Path 變數中。如果沒有,請點擊“新建”並添加該路徑。

Linux/macOS
打開終端。
編輯 ~/.bashrc 或 ~/.zshrc 文件,添加以下行:

	export PATH="$PATH:$HOME/.dotnet/tools"

保存文件並運行以下命令使更改生效:

source ~/.bashrc

source ~/.zshrc
  1. 使用絕對路徑
    如果你找到了 grpc_csharp_plugin.exe 的路徑,可以使用絕對路徑來運行 protoc 命令:

example.proto文件內容
image

生成C#類文件的命令:

	protoc --proto_path=D:\Project\GrpcServiceDemo\protocolbuffers\protos --csharp_out=D:\Project\GrpcServiceDemo\protocolbuffers\codes --grpc_out=D:\Project\GrpcServiceDemo\protocolbuffers\codes --plugin=protoc-gen-grpc=D:\Project\GrpcServiceDemo\protocolbuffers\tools\windows_x64\grpc_csharp_plugin.exe example.proto

執行成功後,會生成這兩個文件:
image

6.如果通過git倉庫代碼無法找到插件grpc_csharp_plugin.exe ,可以通過以下方式

  1. 手動下載
    訪問 NuGet 官方網站。
    搜索 Grpc.Tools 包。
    下載適用於你操作系統的包(例如 Grpc.Tools.2.41.0.nupkg)。

  2. 解壓 Grpc.Tools 包
    下載完成後,解壓 Grpc.Tools 包。你可以使用以下命令解壓 .nupkg 文件:

     mkdir Grpc.Tools
     unzip Grpc.Tools.2.41.0.nupkg -d Grpc.Tools
    
  3. 配置環境變數
    將 grpc_csharp_plugin.exe 的路徑添加到系統的 PATH 環境變數中。

Windows
右鍵點擊“此電腦”或“電腦”,選擇“屬性”。
點擊“高級系統設置”。
在“系統屬性”視窗中,點擊“環境變數”按鈕。
在“系統變數”部分,找到並選擇 Path 變數,然後點擊“編輯”。
確保 Grpc.Tools/tools/windows_x64 路徑已添加到 Path 變數中。如果沒有,請點擊“新建”並添加該路徑。
image

Linux/macOS
打開終端。
編輯 ~/.bashrc 或 ~/.zshrc 文件,添加以下行:

export PATH="$PATH:/path/to/Grpc.Tools/tools/linux_x64"

export PATH="$PATH:/path/to/Grpc.Tools/tools/macosx_x64"

保存文件並運行以下命令使更改生效:

source ~/.bashrc

source ~/.zshrc

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Python 速查表中文版 本手冊是 Python cheat sheet 的中文翻譯版。原作者:Arianne Colton and Sean Chen([email protected]) 編譯:ucasFL 目錄 常規 數值類類型 數據結構 函數 控制流 面向對象編程 ...
  • 寫在前面 Spring的核心思想就是容器,當容器refresh的時候,外部看上去風平浪靜,其實內部則是一片驚濤駭浪,汪洋一片。Springboot更是封裝了Spring,遵循約定大於配置,加上自動裝配的機制。很多時候我們只要引用了一個依賴,幾乎是零配置就能完成一個功能的裝配。 由spring提供的、 ...
  • 八,SpringBoot Web 開發訪問靜態資源(附+詳細源碼剖析) @目錄八,SpringBoot Web 開發訪問靜態資源(附+詳細源碼剖析)1. 基本介紹2. 快速入門2.1 準備工作3. 改變靜態資源訪問首碼,定義為我們自己想要的4. 改變Spring Boot當中的預設的靜態資源路徑(實 ...
  • 1.下載 Redis for Windows Redis 官方並沒有提供 Windows 版本的安裝包,但你可以使用 Microsoft 維護的 Windows 版本的 Redis。你可以從以下鏈接下載 Redis for Windows: 2.安裝 Redis 運行安裝程式: 雙擊下載的 .msi ...
  • 在Word中,分節符是一種強大的工具,用於將文檔分成不同的部分,每個部分可以有獨立的頁面設置,如頁邊距、紙張方向、頁眉和頁腳等。正確使用分節符可以極大地提升文檔的組織性和專業性,特別是在長文檔中,需要在不同部分應用不同的樣式時。本文將介紹如何使用一個免費的.NET庫通過C#實現插入或刪除Word分節 ...
  • 關說不練假把式,在上一,二篇中介紹了我心目中的CRUD的樣子 基於之前的理念,我開發了一個命名為PasteTemplate的項目,這個項目呢後續會轉化成項目模板,轉化成項目模板後,後續需要開發新的項目就可以基於這個模板創建,這樣就不要copy一個舊的項目,然後刪刪刪,改改改,重命名等操作了 強迫症, ...
  • ZY樹洞 前言 ZY樹洞是一個基於.NET Core開發的簡單的評論系統,主要用於大家分享自己心中的感悟、經驗、心得、想法等。 好了,不賣關子了,這個項目其實是上班無聊的時候寫的,為什麼要寫這個項目呢?因為我單純的想吐槽一下工作中的不滿而已。 項目介紹 項目很簡單,主要功能就是提供一個簡單的評論系統 ...
  • 簡介 在現代微服務架構中,服務發現(Service Discovery)是一項關鍵功能。它允許微服務動態地找到彼此,而無需依賴硬編碼的地址。以前如果你搜 .NET Service Discovery,大概率會搜到一大堆 Eureka,Consul 等的文章。現在微軟為我們帶來了一個官方的包:Micr ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...