2011-09-01 30 views
38

Tôi đang xem System.Data.SQLite tải về page, và nó liệt kê lắp ráp chế độ hỗn hợp cho .NET 4 và thường xuyên (tôi giả định). Dự án của tôi sẽ sử dụng thư viện này là tất cả .NET 4 sẽ được biên dịch thành x86.Lắp ráp chế độ hỗn hợp là gì?

Tôi có 2 câu hỏi:

  1. một lắp ráp chế độ hỗn hợp là gì? Google trả về một mảng câu trả lời khó hiểu, không có câu trả lời nào có ý nghĩa nhiều. Một câu trả lời nói rằng đó là tất cả về việc trộn mã gốc và mã được quản lý, trong khi một số khác xác nhận mã của nó để trộn các phiên bản .Net.
  2. Tôi nên tải xuống cho tình huống của mình?

Trả lời

32

http://msdn.microsoft.com/en-us/library/x0w2664k.aspx

1) Allways kiểm tra MSDN đầu tiên. Chế độ hỗn hợp có nghĩa là hội đồng có thể chạy mã được quản lý và không được quản lý.

2) thiết lập cho Windows 32-bit (.NET Framework 4,0)

http://system.data.sqlite.org/sqlite-netFx40-setup-bundle-x86-2010-1.0.74.0.exe

Bạn kinda trả lời rằng chất vấn bản thân "Dự án của tôi có nghĩa là sẽ sử dụng thư viện này là tất cả .NET 4 mà sẽ được biên dịch thành x86. "

+2

Cụm sao chế độ hỗn hợp hiệu quả luôn được viết bằng C++? – AngryHacker

+2

Và bạn đang nói rằng tôi nên sử dụng lắp ráp chế độ hỗn hợp. Tôi vẫn chưa rõ tại sao. – AngryHacker

+3

Vì chỉ có các chế độ hỗn hợp. Điều này là do tính năng 'sqlite' được viết bằng C (COM) và bạn truy cập nó thông qua một trình bao bọc cho .NET. Vì vậy, lắp ráp có chứa C và C# Code -> lắp ráp chế độ hỗn hợp. – Steav

6

Có một cách để sản xuất lắp ráp chế độ hỗn hợp từ IL tinh khiết. Phần cuối cùng của việc tạo ra một hội đồng sử dụng sự phản ánh liên quan đến một cuộc gọi đến AssemblyBuilder.Save. Nếu bạn chỉ cần vượt qua PortableExecutableKinds.Required32Bit cho đối số portableExecutableKind thì bạn sẽ tạo một assembly hỗn hợp. Bạn có thể tránh những vấn đề này gây ra bởi cũng đi qua PortableExecutableKinds.ILOnly. ví dụ:


    assembly_bldr.Save(exe_name, PortableExecutableKinds.Required32Bit | PortableExecutableKinds.ILOnly, ImageFileMachine.I386); 

Không cần phải nói, thông tin này đã được cứng giành ...

5

Taken từ chính thức FAQ

(14) một lắp ráp chế độ hỗn hợp là gì?

Lắp ráp chế độ hỗn hợp là thư viện liên kết động chứa cả mã được quản lý và mã gốc của một cấu trúc bộ xử lý cụ thể . Vì nó chứa mã gốc, nó chỉ có thể được nạp vào một quá trình phù hợp với kiến ​​trúc bộ vi xử lý mà nó đã được biên dịch. Ngoài ra, hãy xem câu hỏi về StackOverflow này.

Nó thậm chí còn tham chiếu đến câu hỏi này!

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