1

の Framework64 バージョンへの参照を持つ C# Visual Studio プロジェクト (.csproj) がありSystem.Dataます。別のマシンでMSBuild / Team Foundation Server (TFS)を使用してビルドしようとすると、64 ビット DLL が存在しないため失敗します。

フレームワーク バージョンにバインドする必要がありますか? それとも、64 ビット マシンで実行する場合に制限されますか? .NET は、可能であればバインディングをリダイレクトして 64 ビットを使用しますか?

4

1 に答える 1

1

私はあなたがあなたの質問のCPUを意味すると思います、正しいですか?それが事実であると仮定すると、ビットネスに関係なくバインドすることは、ほとんどすべての状況で進む方法です。

.NETコードはJITされている(Just In Timeコンパイル済み)ことを思い出してください。つまり、C#またはVB.NETコンパイラからの32ビットと64ビットのコードは、実行するアーキテクチャに関係なく同じです。コードが実行時にJITされると、32ビットまたは64ビットになります。

状況によっては、ターゲットアーキテクチャを気にする必要があります。1つの特定のケースは、 COMラッパーDLL、提供された.NETFrameworkなどへの参照/依存関係です。これは、これらのDLLファイルが32ビットとしてマークされていない場合(COMは32ビットのみのアーキテクチャであるため)、32ビットのみとしてマークされるため(COMの場合)、COMへの相互運用機能は機能しません。したがって、それらは明示的にマークされているため、プロジェクトの出力も同様にマークされている必要があります。

于 2008-11-26T02:45:13.730 に答える