web-dev-qa-db-ja.com

Visual Studio:x64およびx86の構成とプラットフォームを適切に構築および指定する方法

使用:Visual Studio 2012 ProfessionalおよびUltimateと最新のアップデートすべて

X86とx64を正しくビルドするために、構成とプラットフォームを適切に指定するにはどうすればよいですか。

Visual Studioでは、Winformsアプリケーションを最初に作成するときに、AnyCPUがプラットフォームとして定義された、デバッグとリリースの2つの構成が提供されます。

1つのプラットフォームのみを対象とする場合、答えは簡単です。ビルドに移動します。 Configuration Managerでプラットフォームの1つを選択し、プロジェクトプロパティのビルドページに移動して、同じプラットフォーム(x86またはx64)を選択してください。 (x86が欲しいと言って)

/bin/x86/Debug
/bin/x86/Release

1つのアプリケーションと複数の依存関係プロジェクト(DLLアセンブリ)を持つソリューションがあります。

VS構成マネージャーの上部に構成とプラットフォームの2つのドロップダウンリストがあり、プロジェクトレベルでは別の構成とプラットフォームがあるため、次のようにしました。

(さらに入力する前に、セットアップ全体が下手だと思いますが...)

一番上のドロップダウンを使用して2つの新しい構成Debug64とRelease64を作成し、プラットフォームに混合プラットフォームを選択しました。

4つの主なソリューション構成のそれぞれを順番に選択してから、プロジェクトレベルの構成とプロジェクトレベルのプラットフォームを一致するように設定しました。

Debug64 === Debug64, x64
Release64 === Release64, x64
Debug === Debug, x86
Release === Release, x86

次に、プロジェクトプロパティ(Alt + Enter)ビルドページに移動し、プラットフォームを無視して、各構成を順番に選択し、ターゲットプロセッサを一致するように設定しました。出力を次のように変更しました。

Debug64: /bin/x64/Debug
Release64: /bin/x64/Release
Debug: /bin/x86/Debug
Release: /bin/x86/Release

既定では、Visual Studioは最上位のプラットフォームを使用してフォルダーと設定名を設定し、出力の最後の部分を設定します。保存してプロジェクトのプロパティを閉じると、すべて問題ないようです。ビルドして、適切なフォルダを作成できます。

Visual Studioツールバーでソリューション構成を切り替えると問題が発生します。プロジェクトプロパティのビルドページは、デフォルトで必要なものに戻ります。つまり、デバッグとリリースで同様のものの両方で/ bin/x64/Debug64に戻ります。

この問題を書くきっかけとなったのは、デザイナーが混乱し、適切なライブラリを見つけられないことです。

Visual Studioソリューションの構成ドロップダウンから目的のターゲット(デバッグx64、リリースx64、デバッグx86、リリースx86)を選択してビルドしたいと思います。

それ、どうやったら出来るの?何が悪いのですか?

すべてのサブプロジェクトを対象とするソリューションプラットフォームのドロップダウンがないため、デバッグとリリースの2つのソリューション構成を作成するだけでは機能しません。 Visual Studioには、構成セクションとプラットフォームセクションが多すぎるように思えます。たぶん私は何かを逃しているだけです。

21

後世のために、ここに答えがあります。当たり前のように聞こえるかもしれませんが、私にはわかりませんでした...

注:Debug64とRelease64を作成するのは間違いでした。ソリューションに存在するDebug64とRelease64を(Configuration Managerで)削除するだけでなく、プロジェクトごとに自動的に生成されたDebug64とRelease64も削除する必要がありました(Configuration Managerでも、テーブル部分のみ)。しばらく時間がかかりました。

  1. 自動生成されたデバッグおよびリリースソリューション構成があることを確認します。

  2. ソリューションプラットフォームでは、x86とx64を追加します。デフォルトはAny CPUです。

  3. ソリューション構成とプラットフォームのドロップダウンから、(デバッグ/リリースとx86/x64)のさまざまな組み合わせを選択します。プロジェクトが一致していることを確認してください。

  4. 各プロジェクトに移動します(プロジェクト名を選択してからAlt + Enterを押します)。

  5. プロジェクトのプロパティページで、ソリューションのドロップダウンからデバッグ/リリースとx86/x64のさまざまな組み合わせを選択します。ターゲットプロセッサが正しく設定されていることを確認します(正しく設定されているはずですが、おそらく以前の試行が原因で、正しくないインスタンスが見つかりました)。また、出力ディレクトリを設定します。これは問題なく自動化されているはずです(/ bin/x86/Debugなど)。そうでない場合は修正します。

Microsoftのツールバーにはソリューションプラットフォームのドロップダウンがないため、ソリューションプラットフォームを変更する場合は、[ビルド]メニューに移動する必要があります。構成マネージャーと適切なソリューションプラットフォームを選択します。ビルドからソリューション構成を選択できます。構成マネージャー(Visual Studioはツールバーのドロップダウンで選択したソリューション構成を自動的に更新します)またはVisual Studioドロップダウンで新しいソリューション構成を選択します。

プロジェクトの構築は残りの部分を処理します。

ビルドノート1. Visual Studioデザイナーが正しく表示するには、ユーザーコントロールのx86バージョンが必要です。それは最初は明らかではなかったが、今は明らかである。 Visual Studioは、「C:\ Program Files(x86)」フォルダーではなく「C:\ Program Files(x86)」フォルダーにインストールされ、Visual Studioは64ビットアプリケーションではなく32ビットアプリケーションになるため、「使用"デザイナーでは32ビットバージョンのみ。

  1. 迷惑な/ bin/Debugおよび/ bin/releaseフォルダーがある可能性がありますが、それらは使用されません。

  2. 異なる構成で同じコードをビルドするときにBuildVersionIncが増加しないようにしようとしていますが、それは別の問題です。

16