2012-02-16 16 views
7

Tôi đang cố gắng xây dựng một tập hợp các thư viện lớp để chia sẻ mã giữa các ứng dụng mà chúng ta sẽ thực hiện.Thư viện lớp cho các dự án MonoTouch, nhận được "không được xây dựng bằng cấu hình hoạt động", cách khắc phục?

Tuy nhiên, tôi không thể tạo dự án một cách chính xác và tôi không thể nhìn thấy những gì tôi đang làm sai.

Hãy để tôi đi qua các bước tôi sử dụng để tái sản xuất này, có lẽ ai đó ở đây có thể thấy những gì tôi đang làm sai:

  1. Trong một trường hợp MonoDevelop tươi, tôi đi đến File-> Giải pháp mới
  2. Tôi chọn mẫu Dự án Thư viện MonoTouch và đặt tên thích hợp
  3. Sau đó, tôi thêm dự án ứng dụng mới vào giải pháp (để mô phỏng sử dụng thư viện trong ứng dụng), loại "Ứng dụng xem đơn trên iPhone"
  4. Tôi làm cho dự án ứng dụng khởi động dự án
  5. tôi thêm một tham chiếu đến các dự án thư viện trong dự án ứng dụng
  6. tôi sau đó xây dựng

này hoạt động, và nếu tôi chọn Run-> menu Debug, tôi có thể thấy việc mở ứng dụng lên trình giả lập.

Giả sử tôi muốn thử nghiệm nó trên iPhone bây giờ, vì vậy tôi ghé thăm thả xuống trong thanh công cụ, chọn "Debug | iPhone" xây dựng mục tiêu, và ngay lập tức các dự án thư viện lớp được chuyển sang màu xám với:

(không được xây dựng trong cấu hình hoạt động)

Nếu tôi kích chuột phải vào các giải pháp, kiểm tra các ánh xạ cấu hình, khi chọn bất cứ điều gì liên quan đến việc mô phỏng hoặc iPhone, thư viện lớp biến mất khỏi tầm nhìn hoàn toàn và không thể chọn để xây dựng.

Trình đơn thả xuống mục tiêu xây dựng cũng có 6 mục bây giờ, Gỡ lỗi, Phát hành, Gỡ lỗi/phát hành cho iPhone và Gỡ lỗi/phát hành cho trình mô phỏng. Rõ ràng chỉ Debug và Release không dành cho iPhone hoặc trình mô phỏng kết thúc việc xây dựng thư viện lớp.

Tôi đang làm gì sai ở đây?

Trong một dự án khác mà tôi không có khả năng nhìn xung quanh để tìm giải pháp, tôi đã tạo ra một dự án phổ quát trống rỗng, đó là cách "chính xác" để giảm thiểu điều này?

+3

Tôi vừa thử điều này và có vẻ như bị hỏng. Tôi khuyên bạn nên gửi một lỗi tại http://bugzilla.xamarin.com để sự cố có thể được theo dõi đúng cách. –

+2

Điều tương tự ở đây, bất kỳ tin tức nào? Tôi có thể giải quyết bằng cách luôn xây dựng cấu hình giải pháp Debug và sau đó thay đổi cấu hình Debug | IPhone nhưng dễ quên và sau đó tự hỏi tại sao các thay đổi không được triển khai cho iPhone khi thực hiện thay đổi nhỏ trong thư viện lớp giữa các bản dựng. Trao đổi cấu hình giải pháp giữa xây dựng và triển khai là tẻ nhạt và dễ bị lỗi. –

+1

Cách giải quyết có thể là chỉnh sửa tệp * .sln của bạn theo cách thủ công, bạn có có tệp * .sln khác hoạt động mà bạn có thể so sánh không? – jonathanpeppers

Trả lời

2

Điều thú vị là điều này không xảy ra nếu bạn thêm dự án Lib sau dự án Ứng dụng.

Tôi đã tạo dự án Lib như bạn đã mô tả, sau đó thêm một ứng dụng iPhone đơn View, sau đó thêm một Lib (Lib2) khác. Sau đó tôi đã so sánh văn bản trong .sln và thấy rằng Lib thiếu các dòng sau (so với Lib2):

{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhone.ActiveCfg = Debug|Any CPU 
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhone.Build.0 = Debug|Any CPU 
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU 
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU 

{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhone.ActiveCfg = Release|Any CPU 
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhone.Build.0 = Release|Any CPU 
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU 
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU 

Sử dụng GUID của riêng bạn thay cho tôi. GUID sẽ ở gần đầu tệp.Ví dụ, tôi trông giống như (cuộn đến cuối cùng):

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib", "Lib.csproj", "{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}" 

tôi sau đó mở lại các giải pháp và Lib bây giờ đã có trong cả các cấu hình Debug|iPhoneDebug|iPhoneSimulator.


Là một mặt lưu ý, mặc dù Lib sẽ không xây dựng trong Debug|iPhone hoặc Debug|iPhoneSimulator, nhị phân từ Debug là tương thích. Tôi có thể xây dựng và chạy ứng dụng tốt.

+0

Tôi phát hiện ra rằng nó thực sự xảy ra khi ". Build.0 "một phần là mất tích, vì vậy chỉ cần thêm nó vào mỗi mục. Thực sự gây phiền nhiễu vì nó gây ra nhiều vấn đề hơn với dự án. –

Các vấn đề liên quan