2017-03-11 38 views
1

這看起來確實很基本,但我對C#真的很陌生,所以google參考文檔對我來說並不那麼清楚。從原始文件構建一個cs文件?

他們指示:

protoc --proto_path=bar --csharp_out=src --csharp_opt=base_namespace=Example player.proto 

他們的榜樣是

protoc --proto_path=src --csharp_out=build/gen --csharp_opt=file_extension=.g.cs,base_namespace=Example src/foo.proto 

所以我的基本問題清單:

  • 對於proto_path,是從頂層此開始的程序文件夾

  • 什麼是'bar'選項,它總是'src'?

  • 什麼是'src'選項,它總是'build/gen'?

  • 這是可複製的嗎? '--csharp_opt = FILE_EXTENSION = .g.cs,base_namespace = MyProgram的src/MyProtoFile.proto'

回答

0

對於proto_path,從程序文件夾中的頂層該起始

--proto_path 是您想要轉換爲cs文件的原始文件的存在位置。這與protoc可執行文件有關,但也可以設置爲特定的位置,例如, --proto_path = 「C:/ myprotofiles /」

什麼是 '酒吧' 選項,是它總是 'SRC'?

「酒吧」不是一個選項。 「富」與「酒吧」給通用指令(https://en.wikipedia.org/wiki/Foobar

什麼是「SRC」選項,就是它總是「構建/根」時通常用作佔位符?

src不是一個選項。 src是目錄的佔位符。您將用包含您的proto文件的目錄替換「src」。

--csharp_out是您希望輸出C#文件去的地方。這也與protoc可執行文件有關,但也可以設置爲特定位置,例如, --csharp_out = 「C:/ mycsfiles /」

這是可複製的? '--csharp_opt = FILE_EXTENSION = .g.cs,base_namespace = MyProgram的src/MyProtoFile.proto'

我不太清楚在這裏你的問題。這是兩部分。

--csharp_opt設置選項。這個例子是將file_extension設置爲.g.cs(因此輸出文件將是somecsfile.g.cs)並且還將base_namespace設置爲「MyProgram」,以便生成的所有類將位於名爲MyProgram的名稱空間中。

在Google的例子中,「src/MyProtoFile.proto」或「src/foo.proto」是/ src目錄中的proto文件。在我們的例子中,我們將與替換此「C:/myprotofiles/myprotofile.proto」

所以,我們必須:

protoc --proto_path="C:/myprotofiles/" --csharp_out="C:/mycsfiles/" --csharp_opt=file_extension=.g.cs,base_namespace=MyProtoFileNamespace "c:/myprotofiles/myprotofile.proto" 

設置明確的路徑是沒有必要的,但希望澄清的東西(至少對於Windows用戶!)

相關問題