플랫폼 Agnostic .NET Bitness- OS 또는 호출 응용 프로그램에서?
-
23-08-2019 - |
문제
플랫폼의 Agnostic .NET 응용 프로그램이 운영 체제의 비난에 "플로팅"된다는 것을 알고 있습니다. 그러나 비 .net 응용 프로그램에서 호출되는 실행 파일이 아닌 라이브러리 인 .NET 어셈블리는 어떻습니까?
SQL Server 2005에 대한 CLR 확장 저장 프로 시저 인 .NET DLL이 있습니다. 현재 플랫폼 Agnostic입니다. 64 비트 Wind
해결책
어셈블리가 편집 한 대상에 따라 다릅니다. 프로젝트 빌드 옵션에서 "모든 CPU"또는 "x86"을 선택한 경우 DLL은 32 비트 인스턴스로 실행해야합니다. "x64"를 선택하면 예외가 발생합니다 (메모리에서 badimageformatexception).
Windows 32 비트 프로세스에서는 64 비트 DLL을로드 할 수 없으므로 SQL Server는 프로세스 내에서 32 비트 버전의 .NET 런타임을 실행합니다. 따라서 .NET 어셈블리는 64 비트 기계에서도 32 비트로 실행됩니다.
제휴하지 않습니다 StackOverflow