Indipendente dalla piattaforma .NET bitness - dal sistema operativo o applicazione che si chiama?
-
23-08-2019 - |
Domanda
Lo so che la piattaforma di applicazioni .NET agnostici "galleggiano fino" al numero di bit del sistema operativo. Ma che dire di un assembly .NET che è una libreria, non è un eseguibile, di essere chiamato da un'applicazione non-.NET?
Abbiamo una DLL NET che è un CLR stored procedure estesa per SQL Server 2005. Attualmente è indipendente dalla piattaforma. Cosa succede quando la stored procedure estesa viene richiamato da un'istanza a 32 bit di SQL Server in esecuzione su Windows a 64 bit?
Soluzione
Dipende da quello che indirizzare l'assemblea è stato compilato per. Se è stato selezionato "Qualsiasi CPU" o "X 86" nelle opzioni di generazione del progetto della DLL eseguito come esempio a 32 bit. Se è stato selezionato "x 64" sarà un'eccezione (BadImageFormatException dalla memoria).
In Windows 32 processi bit non possono caricare DLL a 64 bit in modo SQL Server sarà in esecuzione una versione a 32 bit di runtime .NET all'interno del suo processo. Così il vostro assembly .NET Consente inoltre di funzionare a 32 bit anche su una macchina a 64 bit.