プラットフォームに依存しないの.NET bit化 - OSやアプリケーションの呼び出しから?
-
23-08-2019 - |
質問
私は、プラットフォームに依存しない.NETアプリケーションは、オペレーティングシステムのbit化に「浮上」ということを知っています。しかしnon-.NETアプリケーションから呼び出されるライブラリではなく、実行可能であり、.NETアセンブリについて何?
私たちは、CLRは現在、それがプラットフォームに依存しないでSQL Server 2005のストアドプロシージャを拡張し、.NETのDLLを持っています。拡張ストアドプロシージャは、64ビットのWindows上で実行されている32ビットのSQL Serverインスタンスから呼び出されたときに?
何が起きます解決
これは、アセンブリがためにコンパイルされたものを対象に依存します。あなたは、プロジェクトのビルドオプションで「どれCPU」や「x86」は選択した場合、DLLは、32ビット・インスタンスとして実行する必要があります。あなたが選択した場合は、「x64の」それは例外(メモリからBadImageFormatException)をスローします。
SQL Serverはそのプロセス内の.NETランタイムの32ビットバージョンを実行されるようにWindowsの32ビットプロセスの下では、64ビットのDLLをロードすることはできません。だからあなたの.NETアセンブリはまた、64ビットマシン上でも、32ビットとして実行されます。
所属していません StackOverflow