2

私のビジュアル スタジオ プロジェクトでは、次の状況があります。

  • アセンブリ C
  • プロジェクト A -> クラス ライブラリ任意の CPU (アセンブリ C を参照)
  • プロジェクト B -> Windows アプリケーションx86 (プロジェクト A を参照)

この構成では、C が使用するプラットフォーム アセンブリを決定するものは何ですか?

  1. スタートアップ プロジェクトであるプロジェクト B --> アセンブリ C は x86 を実行します
  2. アセンブリ C を直接参照するプロジェクトであるプロジェクト A --> アセンブリ C は、プラットフォームに応じて x86 または x64 を実行します

1つか2つ?ありがとう

4

2 に答える 2

5

スタートアップ アセンブリは、使用されるプラットフォームを決定します。スタートアップ アセンブリが "任意の CPU" としてビルドされている場合、OS が実行されているプラ​​ットフォームで実行されます。

(つまり、1)

于 2012-12-21T15:13:15.647 に答える
-2

ターゲットごとにコンパイルされたアセンブリ C によって異なります。他のプロジェクトは、形や形のビットネスに影響を与えません。ターゲットが混在するこのタイプのセットアップは、多くの問題を引き起こす可能性があります。

B はアプリケーションであるため、x86 として実行されます。x64 を使用している場合、プロジェクト A は x64 として実行しようとし、x86 アプリケーションは x64 dll をロードできないため、ロードに失敗します。

x86 マシンで実行すると、プロジェクト A も x86 を実行し、正しくロードされます。

于 2012-12-21T15:16:57.390 に答える