2009-06-16 24 views
1

32ビットプラットフォームサーバー用の64ビットplaformのコンプライアントアセンブリにはどのようなオプションを選択する必要がありますか。現在私は32ビットサーバーに公開しようとしています。 Windows VistaマシンでVS2005を使用してプロジェクトをビルドし、サーバーに公開していますが、エラーが発生しています。どのように私はこの問題を解決することができます考え。32ビット用の64ビットplaformでアセンブリをコンパイルする

64ビットマシンまたは混合プラットフォームオプションでAnyCPUオプションを使用する必要があります。また、x86のオプションも無効になっています。理由はわかりません。

+0

サーバーにどのようなエラーがありますか? – jerryjvl

+0

例外System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 (Conversation pGalConversation) – sam

+0

AnyCPUを使用してオプションをコンパイルすることにより、BP.Generic(会話pGalConversation)で がC:¥Soe¥IS¥Generic¥BP¥BP.vbにあります。テストサーバーでうまく動作しますが、ライブサーバーでは失敗します – sam

答えて

1

管理対象言語で作業していると仮定し、生成されたILは実行時にコードがJITされるまで機械命令に変換されないため、「AnyCPU」はクロスプラットフォーム(64/32ビット)である必要があります。

ポインタのサイズなどに依存する特定の構造体を使用するとビット依存性の依存関係を得ることができる例外はほとんどありませんが、一般にコードには上がらないコード上でFxCopを実行してください(これらの問題をカバーする移植性を扱うFxCopのセクションがあります)

2

AnyCPUを使用してください。アセンブリが特定のCPU用にマークされたアセンブリに直接的に管理されていない依存関係や依存関係を持たない場合、アセンブリは64または32ビットで正常に動作します。

関連する問題