21

使用: Visual Studio 2012 Professional および Ultimate とすべての最新の更新プログラム

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

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

1 つのプラットフォームだけをターゲットにする場合、答えは簡単です。Configuration Manager を開き、プラットフォームの 1 つを選択してから、プロジェクト プロパティのビルド ページに移動し、同じプラットフォーム (x86 または x64) を選択すると出来上がりです。あなたは(x86が欲しいと言う)で終わります

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

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

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

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

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

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 ソリューション構成ドロップダウンから目的のターゲット (Debug x64、Release x64、Debug x86、Release x86) を選択してビルドしたいと考えています。

それ、どうやったら出来るの?私は何を間違っていますか?

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

4

1 に答える 1

16

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

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

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

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

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

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

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

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

プロジェクトをビルドすると、残りの処理が行われます。

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

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

  2. 異なる構成で同じコードをビルドするときに BuildVersionInc をインクリメントしないようにまだ試みていますが、それは別の問題です。

于 2013-07-31T15:28:45.040 に答える