Plate-forme .NET bitness agnostique - du système d'exploitation ou de l'application d'appel?

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

Question

Je sais que le nombre de bits du système d'exploitation que la plate-forme agnostique applications .NET « flottent ». Mais qu'en est-un ensemble de .NET qui est une bibliothèque, pas un exécutable, étant appelé à partir d'une application non-.NET?

Nous avons une DLL .NET qui est une procédure stockée étendue CLR pour SQL Server 2005. Actuellement, il est la plate-forme agnostique. Qu'est-ce qui se passe lorsque la procédure stockée étendue est appelée à partir d'un 32 bits instance SQL Server en cours d'exécution sur Windows 64 bits?

Était-ce utile?

La solution

Cela dépend de la cible de l'ensemble a été compilé. Si vous avez sélectionné « Any CPU » ou « x86 » dans les options de construction du projet de la DLL devrait fonctionner comme 32 instance de bits. Si vous avez sélectionné "x64" il lancera une exception (BadImageFormatException de la mémoire).

Sous Windows 32 processus de bits ne peut pas charger 64 bits DLL si SQL Server exécuter une version 32 bits du runtime .net dans son processus. Donc, votre assembly .net également fonctionner comme 32 bits, même sur une machine 64 bits.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top