Подтвердить что ты не робот

Что такое сборка смешанного режима?

Я смотрю на System.Data.SQLite скачать страница, и он показывает сборку смешанного режима для .NET 4 и регулярную (I предполагать). Мой проект, который будет использовать эту библиотеку, - это все .NET 4, которые будут скомпилированы для x86.

У меня есть 2 вопроса:

  • Что такое сборка в смешанном режиме? Google возвращает запутанный массив ответов, ни один из которых не имеет большого смысла. В одном ответе говорится, что все это касается смешивания собственного и управляемого кода, в то время как другие утверждают, что он предназначен для микширования версий .Net.
  • Какую загрузку я должен получить для своей ситуации?
4b9b3361

Ответ 1

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

1) Allways сначала проверяет msdn. Смешанный режим означает, что сборка может запускать управляемый и неуправляемый код.

2) Настройка для 32-разрядной версии Windows (.NET Framework 4.0)

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

Вы сами ответили на этот вопрос: "Мой проект, который будет использовать эту библиотеку, - это все .NET 4, которое будет скомпилировано для x86".

Ответ 2

Существует способ создания смешанной моды из чистого ИЛ. Последняя часть создания сборки с использованием отражения включает вызов AssemblyBuilder.Save. Если вы просто передадите PortableExecutableKinds.Required32Bit для аргумента portableExecutableKind, вы создадите сборку в смешанном режиме. Вы можете избежать возникающих проблем, также передавая PortableExecutableKinds.ILOnly. то есть.


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

Излишне говорить, что эту информацию трудно выиграть...

Ответ 3

Взято из официального FAQ

(14) Что такое сборка в смешанном режиме?

Комбинация смешанного режима представляет собой динамическую библиотеку ссылок, которая содержит оба управляемый код и собственный код для конкретной архитектуры процессора. Поскольку он содержит собственный код, он может быть загружен только в процесс который соответствует архитектуре процессора, для которой он был скомпилирован. Также см этот вопрос StackOverflow.

Он даже ссылается на этот вопрос!