2012-01-31 64 views
2

我想用protobufs序列化一些類。我使用NuGet安裝了protobuf-net,用屬性正確地修飾了我的代碼,並且一切都運行良好。然而,最終消息將在C#中創建,但在其他環境中消耗,所以我需要從C#創建.proto文件,或者 - 對我來說更合理 - 從.proto文件創建C#代碼。ProtoGen與protobuf網

無論我做什麼,我都找不到ProtoGen.exe安裝在我的電腦的任何地方。我也發現this old post,但是當我創建一個.proto文本文件時沒有任何事情發生。手動添加ProtoBufTool也不起作用。

我錯過了什麼?

回答

4

Protogen包含在v1/280版本中,或者有一個單獨的VS工具可以從項目網站獲得。沒有一種方便的方式可以用任何明智的方式將它包含在nuget中(我與MS人員進行了檢查;兩次)。

對於protogen和VS插件,v2的功能都沒有改變,所以現有的v1二進制文件仍然適用於v2。

如果ProtoBufTool不起作用,那麼......我不知道那是怎麼回事;有沒有錯誤信息/警告?經典的警告是關於輸入文件的編碼(「protoc」,谷歌的工具,對編碼非常挑剔)。

+0

我試過v2,這解釋了爲什麼什麼都沒有發生(該工具甚至沒有運行,沒有任何錯誤)。我會嘗試從v1中獲得它。謝謝。 – zmbq 2012-01-31 18:25:38

+0

嗨,只是一個快速的:這個信息是最新的嗎?即nuget中包含的工具是否已正確安裝?由於[GitHub頁面](https://github.com/mgravell/protobuf-net#proto-file)只重定向到一個相當古老的博客文章,我不確定到2017年爲止獲得protogen的「正確」方式,它不提供任何額外的鏈接。 – Groo 2017-07-24 10:17:32

+0

@格羅今天最簡單的方法是http://protogen.marcgravell.com - 它可以作爲來源,但我有工作要做的包裝它爲nuget – 2017-07-24 10:44:35