簡體   English   中英

奇怪的單聲道編譯錯誤

[英]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支持以下平台:

  • Win32上的.NET 2.0
  • Win32上的Mono(2.0框架)
  • Linux上的Mono(2.0框架)

請注意,.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM