2012-11-30 64 views
1

我已閱讀使用MonoLinux/Unix系統下編譯protobuf-csharp-port的說明。我仍然無法得到它的工作,最終我會打開一個線索問爲什麼,但這不是這篇文章的問題。如何在Windows下在Mono上構建protobuf-csharp-port

我使用Windows進行開發,並已成功使用VS2010構建了protobuf-csharp端口。事實是,我需要使用從Unity3D內部生成的C#類,這需要使用Mono。

我有單聲道2.8安裝在我的機器上。

的問題是:

可能使用MonoDevelop建立在Windows protobuf-csharp-port?我試圖簡單地導入VS2010解決方案並使用Mono編譯它,但它不起作用。

我該怎麼辦?

編輯

雖然試圖簡單地編譯使用MonoDevelop的我得到了幾個錯誤與解決方案。第一個是在下面的行的FieldMappingAttribute.cs

public MappedType MappedType { get; private set; } 

誤差如下:

FieldMappingAttribute.cs(40,40):錯誤CS0501: 「Google.ProtocolBuffers.Descriptors.FieldMappingAttribute .MappedType.get」 必須聲明主體,因爲它不標記爲抽象或EXTERN (CS0501)(ProtocolBuffers)

+0

這個錯誤聽起來像是你正在使用C#2編譯器。您至少應該使用C#3編譯器。 –

回答

2

你不應該需要自己構建主要的protobuf-csharp-port項目...或者如果你這樣做,你應該能夠很少這麼做。

不需要需要重建protobuf-csharp-port來構建生成的C#類。只需添加一個對Google.ProtocolBuffers.dll的引用,你應該沒問題。

這就是說,我還沒有在Mono上測試一段時間。它不會做任何事情拼命地棘手,但你絕對應該徹底測試。

+0

所以我可以引用使用VS2010從Mono項目內建立的DLL? – Heisenbug

+0

@Heisenbug:絕對。這是.NET程序集便攜性的要點:)(事實上,使用Noda Time時,運行單聲道裝配時遇到了問題,通過運行VS構建的裝配來解決問題。) –

+0

哦哇..我沒有意識到這一點。所以我想我使用你的VS2010項目,並簡單地鏈接dll。 – Heisenbug