2012-08-28 27 views
5

Trong giải pháp của tôi tạo ra với MonoDevelop (3.0.3.5) Tôi có 3 dự án:MonoTouch với Portable Dự án Thư viện không thể xây dựng

  1. dự án với giao diện người dùng MonoTouch,
  2. dự án với mã cụ iOS MonoTouch Thư viện,
  3. Dự án thư viện di động với mô hình miền.

Dự án Thư viện di động sẽ không biên dịch và hiển thị các ký hiệu cảnh báo trên tham chiếu (System, System.Core, System.Xml) trong MonoDevelop. Khi tôi mở ra các tài liệu tham khảo lắp ráp, thông báo lỗi sau đây được hiển thị:

Assembly not available in .NETPortable 4.0 Profile1 Profile (in Mono 2.10.9)

Cùng một vấn đề báo cáo trong this forum thread.

Có ai có cùng vấn đề và có thể giải quyết vấn đề này không?

Cập nhật

Demo giải pháp với việc xây dựng các lỗi có thể được tìm thấy trên GitHub here (bgever/plp-build-error).

Tôi phát hiện ra rằng mặc dù thông báo lỗi được hiển thị, mã cơ bản có thể được biên dịch và hoạt động như mong đợi.

Tuy nhiên, hai biến thể của xây dựng các lỗi ngăn chặn các giải pháp demo từ biên dịch là:

public T Get<T> (Expression<Func<T, bool>> predicate) where T : new() { 

Sử dụng kiểu generic System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,TResult>' requires 10' kiểu lập luận (s) (CS0305)

Vì vậy, có vẻ như 2 đối số quá tải chung Func<T, TResult> không được hỗ trợ?

public void RunInTransaction (Action action) { 

Sử dụng kiểu generic System.Action<T>' requires 1' kiểu lập luận (s) (CS0305)

Vì vậy, có vẻ như phiên bản không-chung của Action không thể được tìm thấy?

+0

Nếu bạn xóa tất cả các tham chiếu trong thư viện lớp di động, nó sẽ làm gì? Bạn không nên có bất kỳ tài liệu tham khảo nào ngoại trừ các dự án thư viện lớp di động của bạn. – jonathanpeppers

+0

@jonathanpeppers Cảm ơn bạn đã bình luận. Việc xóa các tài liệu tham khảo không giúp được gì, tôi đoán vì đó là các hội đồng cốt lõi. Xem câu hỏi được cập nhật với tên. –

+1

Bạn có thể đăng một dự án mẫu lên một nơi nào đó không? Không phải là toàn bộ dự án của bạn, chỉ là một trong những minh chứng những gì sẽ không xây dựng cho bạn. – jonathanpeppers

Trả lời

1

Với thông báo lỗi bổ sung, tôi đã tìm thấy câu hỏi SO sau: MonoDevelop: is it possible to switch PCL's compiler? Với câu trả lời từ @mhutch được cung cấp, trình biên dịch MonoTouch có thể được thực thi và sau đó có thể biên dịch mã.

Tuy nhiên, đây chỉ là giải pháp thay thế, do đó, sẽ thật tuyệt vời khi xem hỗ trợ Thư viện lớp di động phù hợp trong Mono, MonoDevelop và MonoTouch.

Nếu bạn cần hỗ trợ Thư viện lớp di động phù hợp: vote for this feature on Xamarin's UserVoice.

0

Tôi cũng gặp vấn đề tương tự với tham chiếu .Net trong PLP, những gì tôi thực sự làm là xóa các tham chiếu hiện có và thêm chúng lại theo cách thủ công từ vị trí của bạn.Net Framework được cài đặt, khởi động lại MonoDevelop và tôi đã hoạt động trở lại.

+1

Cảm ơn đề xuất của bạn. Bằng cách này, bạn cũng đang nhắm mục tiêu nền tảng .NET hoặc MonoTouch đầy đủ thay vì nền tảng Thư viện di động. Nó biên dịch, nhưng không di động. Tuy nhiên, chúng tôi cần hỗ trợ Thư viện di động đầy đủ. –