2010-03-01 39 views
15

Tôi đang sử dụng để có được IKVM SVNKit trên một dự án Mono Tôi đang làm việc với, tôi có một lớp mà thực hiện một giao diện từ SVNKit, và tôi không thể biên dịch:Weird Mono biên soạn lỗi

Trên cửa sổ và trên .NET, mọi thứ biên dịch tốt, chỉ nhận được điều này trên Mono.

/home/nubela/Workspace/subsync/subsync/Core/Subversion/PropGetHandler.cs(22,22): Lỗi CS0535: Subsync.Core.Subversion.PropGetHandler' does not implement interface member org.tmatesoft.svn.core.wc.ISVNPropertyHandler .__ <clinit>() ` (CS0535) (subsync)

tôi googled __<clinit>() phương pháp, và nó có vẻ là phương pháp khởi tạo cho lớp cơ sở trong thư viện Java được biên soạn từ IKVM.

Tôi không biết làm cách nào để tiếp tục ngay bây giờ, mọi người có ý tưởng không? :)

+0

cảm ơn các bạn upvote :) đánh giá cao điều đó. – nubela

+0

Bạn đã thử chạy kết quả biên dịch .NET dưới Mono để xem đó có phải là trình biên dịch hay thời gian chạy không? – weismat

+0

Dường như biên dịch .NET đúng cách nhưng Mono thì không. Nhưng nó không quan trọng bởi vì tôi cần nó trên Mono như nó được cho là một ứng dụng crossplatform. – nubela

Trả lời

0

Nếu bạn có quyền truy cập vào mã trong thư viện Java, thì bạn có thể triển khai đúng phương thức __().

Phương thức void __() {} - biên dịch tốt. Nếu điều đó sẽ không giúp bạn có thể cung cấp một mẫu mã sao chép lỗi?

+0

Giao diện không có __(), rằng __() là một phương thức mà IKVM sử dụng cho một số khởi tạo lớp cơ sở, và không liên quan gì đến mã Java. – nubela

0

Vì lớp học của bạn có thể xây dựng với trình biên dịch của Microsoft, đây phải là lỗi trong trình biên dịch hoặc thời gian chạy của Mono.

Bạn có thể sử dụng các hội đồng được xây dựng với trình biên dịch của Microsoft với Mono trên bất kỳ nền tảng nào.

Tôi có thể đề nghị hai công việc ở quanh:

a) Xây dựng một svnkitutil.dll lắp ráp helper trên Windows. Điều này sẽ chứa một cài đặt mặc định là ISVNPropertyHandler và bất kỳ giao diện có vấn đề nào khác. Sau đó bạn sẽ thực hiện giao diện bằng cách phân lớp thực hiện mặc định.

Điều này có thể vẫn không thành công với cùng một vấn đề.

b) Sửa đổi các nguồn Java để xóa trường tĩnh trong giao diện (ISVNPropertyHandler.NULL).

Điều này có thể là rất nhiều công việc, nếu đây là một mô hình phổ biến trong suốt SVNKit.

+0

Vâng, nhưng tôi phát triển trên Linux và tôi không thể khởi động lại mọi lúc để biên dịch. – nubela

+2

@nubela: Máy ảo khá hữu ích cho một cái gì đó như thế này ... –

0

Tôi sẽ đặt câu hỏi rõ ràng ở đây ..., nhưng bạn đã chạy mã của mình qua moma http://www.mono-project.com/MoMA? Tôi cũng có một số lỗi biên dịch thực sự kỳ lạ được gây ra bởi sự không tương thích tinh tế (phương pháp cốt lõi không được thực hiện vv).

+0

Ngoài ra, nếu thiếu công cụ được tìm thấy, hãy gửi báo cáo ở cuối trình hướng dẫn, vì vậy, họ sẽ biết những gì cần sửa. – Dykam

1

Tôi sẽ mạo hiểm trong rất nhiều downvotes và đề xuất một giải pháp khác, đó là, ý kiến ​​của tôi, tốt hơn nhiều ... Tôi không thực sự hiểu tại sao bạn đang sử dụng các thư viện Java trong .NET ứng dụng, nếu có nhiều lựa chọn thay thế trong .NET và các lựa chọn thay thế tốt.

Tại sao bạn không sử dụng thư viện svn có nguồn gốc cho .NET, chẳng hạn như Svn.NET? Nó sẽ là nhiều hơn nữa nhanh hơn. Nếu bạn đã có mã sử dụng SVNKit, bạn có thể chuyển đổi nó sang Svn.NET hoặc chỉ cần tạo một số hàm bao cho nó.

Cá không thể sống bên ngoài nước, phải không? Nó có thể sống chỉ trong môi trường tự nhiên của nó, nước. Vì vậy, SVNKit, nên sống trong môi trường tự nhiên của nó ... Java, chứ không phải .NET. SVNKit in .NET giống như con người ở sao Hỏa, và nó là ok, nhưng tôi thích con người hơn trong trái đất.

Svn.NET hỗ trợ các nền tảng sau:

  • .NET 2.0 trên Win32
  • Mono trên Win32 (2.0 framework)
  • Mono trên Linux (khuôn khổ 2,0)

Note .NET/Mono 3.5 chỉ là một phần mở rộng đến 2.0, vì vậy nó sẽ hoạt động trên 3.5.

Tại sao bị vướng vào? Nó sẽ dễ dàng hơn nhiều cho bạn.

+0

vì. tôi đã sử dụng nó và nó không hoạt động. bên cạnh đó, nó chỉ hỗ trợ svn kế thừa, chứ không hỗ trợ svn mới nhất. vì vậy, có bạn đi. – nubela

+0

Vâng, bạn có thể sử dụng SharpSvn quá .. có rất nhiều lựa chọn thay thế.http: //www.thoughtspark.org/node/11 –