[英]Weird Mono compilation error
我正在使用IKVM在我正在使用的Mono項目上獲取SVNKit,我有一個實現SVNKit接口的類,我無法編譯:
在Windows和.NET上,一切都編譯得很好,只需在Mono上獲取。
/home/nubela/Workspace/subsync/subsync/Core/Subversion/PropGetHandler.cs(22,22):錯誤CS0535:
Subsync.Core.Subversion.PropGetHandler' does not implement interface member
org.tmatesoft.svn.core.wc。 ISVNPropertyHandler .__ <clinit>()`(CS0535)(subsync)
我用googled __<clinit>()
方法,它似乎是從IKVM編譯的Java庫中的基類的初始化方法。
我不知道如何繼續現在,任何想法的家伙? :)
我將在很多downvotes中承擔風險並提出另一種解決方案,也就是說,對於我看來,更好一點......我真的不明白為什么你在.NET應用程序中使用Java庫,如果有的話.NET中有很多替代品,也是很好的選擇。
為什么不使用.NET本機的svn庫,比如Svn.NET ? 這將更加快捷。 如果你有使用SVNKit的現有代碼,你可以將它轉換為Svn.NET或只為它創建一些包裝器。
一條魚不能住在水外,對吧? 它只能生活在自然環境中,水中。 所以,SVNKit應該生活在它的自然環境中...... Java,而不是.NET。 .NET中的SVNKit就像火星上的人類一樣,沒關系,但我更喜歡地球上的人類。
Svn.NET支持以下平台:
請注意,.NET / Mono 3.5只是2.0的擴展,因此它可以在3.5上運行。
為什么要糾結? 這對你來說會容易得多。
如果您可以訪問Java庫中的代碼,那么您可以正確實現方法__()。
方法void __(){} - 編譯得很好。 如果這無濟於事,您是否可以提供重現錯誤的代碼示例?
由於您的類可以使用Microsoft的編譯器構建,因此這必須是Mono編譯器或運行時中的錯誤。
您可以在任何平台上使用Microsoft的編譯器與Mono構建的程序集。
我可以建議兩種解決方法:
a)在Windows上構建一個幫助程序集svnkitutil.dll。 這將包含ISVNPropertyHandler
的默認實現以及任何其他有問題的接口。 然后,您將通過子類化默認實現來實現接口。
這可能仍會因同一問題而失敗。
b)修改Java源以刪除接口中的靜態字段( ISVNPropertyHandler.NULL
)。
這可能是很多工作,如果這是整個SVNKit的常見模式。
我將在這里問一個明顯的問題......,但你是通過moma運行你的代碼http://www.mono-project.com/MoMA ? 我還有一些非常奇怪的編譯器錯誤,這些錯誤是由微妙的不兼容性(未實現的核心方法等)引起的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.