[英]Generating c# files from .proto files using protoc on pre build event in VS 2017
我嘗試使用來自protoc
nuget package 的 protoc 從google.protobuf.tools
文件生成 c# 文件。 我用 .proto 文件創建了 .net 核心庫項目。
為此的預構建事件命令行
protoc -I=$(ProjectDir)Messages --csharp_out=$(ProjectDir)Messages $(ProjectDir)*.proto
其中protoc
是protoc.exe預編譯版本的環境變量
但我得到了錯誤
error MSB3073: The command "protoc -I=C:\Projects\TecAlliance.Core.Messages\TecAlliance.Core.Messages\Messages --csharp_out=C:\Projects\TecAlliance.Core.Messages\TecAlliance.Core.Messages\Messages C:\Projects\TecAlliance.Core.Messages\TecAlliance.Core.Messages\GpsCoodinates.proto" exited with code 9009.
1>Done building project "TecAlliance.Core.Messages.csproj" -- FAILED.
我該如何解決?
這些鏈接很有幫助:
我開始工作的預構建命令:
$(NugetPackageRoot)google.protobuf.tools\3.13.0\tools\windows_x64\protoc.exe -I=$(ProjectDir)protos --csharp_out=$(ProjectDir)Messages $(ProjectDir)protos\*.proto
我沒有手動安裝protoc。 此命令使用 Nuget package google.protobuf.tools 附帶的命令。
我的項目結構如下:
-項目目錄
----留言目錄
------myMessages.cs
----protos目錄
------myMessages.proto
要回答具體問題:
我收到了同樣的錯誤,這意味着它找不到“protoc”。 通過使用上面的構建命令,它將能夠找到 protoc exe。 一個明顯的缺點是,如果您更新 protobuf 包,那么您還需要在 MSBuild 命令中更新版本。 也許有人知道一種自動化的方法?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.