Plataforma .NET agnóstico valor de bits - a partir del sistema operativo o aplicación que llama?

StackOverflow https://stackoverflow.com/questions/552293

Pregunta

Sé que la plataforma de aplicaciones .NET agnóstico "flotan" al valor de bits del sistema operativo. Pero ¿qué pasa con un ensamblado de .NET que es una biblioteca, no un ejecutable, que se llama desde una aplicación non-.NET?

Tenemos una DLL de .NET que es un CLR procedimiento almacenado extendido para SQL Server 2005. En la actualidad es independiente de la plataforma. ¿Qué pasa cuando el procedimiento almacenado extendido se invoca desde una instancia de 32 bits de SQL Server que se ejecuta en 64 bits de Windows?

¿Fue útil?

Solución

Depende de lo que se dirigen a la asamblea fue compilado. Si ha seleccionado "Cualquier CPU" o "x 86" en las opciones de generación de proyectos la DLL debe ejecutarse como instancia de 32 bits. Si ha seleccionado "x 64" se lanzará una excepción (BadImageFormatException de la memoria).

En Windows 32 bits procesos no se puede cargar DLL de 64 bits de modo de SQL Server se ejecuta una versión de 32 bits del tiempo de ejecución .NET dentro de su proceso. Por lo que su ensamblado de .NET también se ejecutará como de 32 bits, incluso en una máquina de 64 bits.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top