第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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...