¿Qué es un ensamblaje de modo mixto?


Estoy mirando el Sistema.Datos.SQLite download page , y enumera el ensamblado de modo mixto para.NET 4 y un normal (supongo). Mi proyecto que va a utilizar esta biblioteca es todo. NET 4 que se compilará a x86.

Tengo 2 preguntas:

  1. ¿Qué es un ensamblaje de modo mixto? Google devuelve una serie confusa de respuestas, ninguna de las cuales tiene mucho sentido. Una respuesta afirma que se trata de mezclar código nativo y administrado, mientras que otros afirman que es para mezclar Versiones. Net.
  2. ¿Qué descarga debo obtener para mi situación?
Author: starblue, 2011-09-01

3 answers

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

1) Compruebe siempre msdn primero. El modo mixto significa que el ensamblado puede ejecutar código administrado y no administrado.

2) Configuraciones para Windows de 32 bits (. NET Framework 4.0)

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

Usted mismo respondió a esa pregunta "Mi proyecto que va a usar esta biblioteca es todo.NET 4 que se compilará a x86."

 32
Author: Steav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-27 21:56:22

Hay una manera de producir un ensamblaje de modo mixto a partir de IL puro. La parte final de crear un ensamblado usando reflexión implica una llamada a AssemblyBuilder.Guardar. Si usted acaba de pasar PortableExecutableKinds.Required32Bit para el argumento portableExecutableKind, entonces creará un ensamblado de modo mixto. Puede evitar los problemas que esto causa pasando también PortableExecutableKinds.ILOnly. es decir,


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

Huelga decir que esta información fue ganada duramente...

 6
Author: Rob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-27 21:54:34

Tomado del oficial FAQ

(14) ¿Qué es un ensamblaje de modo mixto?

Un ensamblado de modo mixto es una biblioteca de enlaces dinámicos que contiene ambos código administrado y código nativo para una arquitectura de procesador particular. Dado que contiene código nativo, solo se puede cargar en un proceso que coincide con la arquitectura del procesador para la que fue compilado. Ver también esta pregunta de StackOverflow.

¡Incluso hace referencia a esta pregunta!

 5
Author: bouvierr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-24 15:56:10