2012-03-14 32 views
5

Sau khi đọc câu hỏi How can I conditionally compile my C# for Mono vs. Microsoft .NET? và nhìn thấy này great answerSQLite trên cửa sổ và trên mono?

Tôi đã tự hỏi nếu có một cách để biên dịch sử dụng cả hai sqlite cho phiên bản .NET và monos. Trên cửa sổ tôi không nên yêu cầu monos lib để tồn tại và trên hệ thống mono/thời gian chạy tôi chỉ cần tham khảo monos. Phần tiếp theo là trong mã tôi đang sử dụng không gian tên System.Data.SQLite HOẶC Mono.Data.Sqlite Tôi không thể làm cả hai vì tên va chạm lớp.

Tôi không chắc chắn phải làm gì. Có lẽ tôi nên sử dụng phiên bản monos nhưng hơn tôi không muốn tìm ra phần cứng nếu tôi phải sử dụng thời gian chạy mono cho tham chiếu đó (trong đó có một cơ hội công bằng được yêu cầu). Làm thế nào để tôi sử dụng SQLite theo cách chạy trên windows và trên mono?

+0

Mono.Data.Sqlite hoạt động trên các cửa sổ trong thời gian chạy 3,5. Nó chỉ là 4,0 mà nó đi sai do các thiết lập bảo mật. Có thể liên kết với cả hai và chọn triển khai nào trong thời gian chạy? – IanNorton

+0

xem: https://bugzilla.xamarin.com/show_bug.cgi?id=2148. M.D.S hoạt động tốt trên các cửa sổ và Linux cho tôi dưới 3.5 vì vậy bản vá này để nó nên "sửa chữa" nó cho 4.0 – IanNorton

+0

@IanNorton: Vì vậy, nói của bạn để tham khảo monos sqlite tham khảo thay vì tham khảo sqlite.phxsoftware.com? Nếu vậy, hãy đăng nó như một câu trả lời, tôi sẽ chấp nhận. –

Trả lời

2

Mono.Data.Sqlite hoạt động trên windows, linux và OSX (và có lẽ cả solaris nữa). Bạn có thể thay thế System.Data.Sqlite bằng nó, (SDS là một ngã ba của MDS mà tôi nghĩ)

System.Data.SQLite Tôi nghĩ là mã được quản lý hoàn toàn. Trong khi Mono.Data.SQLite là một trình bao bọc được quản lý xung quanh thư viện sqlite C thực. Đối với tôi sử dụng thư viện này là hơi nhanh hơn so với một quản lý đầy đủ.

+0

Nó dường như không hoạt động. Tôi đã viết một câu hỏi hai trong trường hợp tôi chỉ cần thiết lập nó sai http://stackoverflow.com/questions/11462465/mono-sqlite-w-o-mono-on-windows –