Pergunta

Eu sei que a plataforma aplicações agnósticas .NET "flutuam" para o número de bits do sistema operacional. Mas o que dizer de um .NET assembly que é uma biblioteca, e não um executável, que está sendo chamado de um aplicativo non-.NET?

Temos uma DLL .NET que é um CLR procedimento armazenado estendido para o SQL Server 2005. Atualmente ele é plataforma agnóstica. O que acontece quando o procedimento armazenado estendido é invocado a partir de uma instância do SQL Server de 32 bits em execução no Windows de 64 bits?

Foi útil?

Solução

Depende do que direcionar a montagem foi compilado. Se você selecionou "Qualquer CPU" ou "x86" nas opções de compilação de projeto do DLL deve ser executado como instância de 32 bits. Se você selecionou "x64" vai lançar uma exceção (BadImageFormatException de memória).

processos de 32 bits no Windows não pode carregar 64 bits DLLs de modo SQL Server vai estar executando uma versão do tempo de execução .net dentro de seu processo de 32 bits. Portanto, o seu .net montagem também será executado como de 32 bits mesmo em uma máquina de 64 bits.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top