2016-06-16 15 views
0

Visual Studio 2013でアプリケーションを作成しましたが、64ビットアプリケーションとしてビルドしたいと考えていました。私はhereの手順に従って、私のプロジェクトを64ビットアプリケーションとして設定しました。今問題:64ビット構成のプロジェクトは、ビンファイルに64ビットのexeファイルを生成していないようです。

私はVSからアプリケーションを実行する場合、(64ビットアプリケーションとして)うまく動作します。

実行ファイルをbinで生成すると、32ビットアプリケーションのように動作します。

重要言及:

アプリケーションが実行中のすべてのプロセスを取得し、プロセス名とファイル名(実行ファイルへのパス)をグリッドに表示しなければなりません。 enter image description here

これは私がVS

enter image description here

から実行したときにグリッドがどのように見えるかであり、これは私がビン

から.exeファイルを実行したときにグリッドがどのように見えるかです

.MainModule.FileNameにアクセスしようとすると、アプリケーションが32ビットアプリケーションのように動作することがわかります32ビットプロセスは、64ビットプロセスにアクセスしようとするとWin32例外をスローします。私はその例外を処理しますが、パスを見つけることができず、私はそれを必要とします。

私はビンに64ビットアプリケーションとして.exeを生成する方法が必要です。または、64ビットアプリケーションのように動作しない理由を少なくとも理解してください。

答えて

0

異なるプロジェクト構成では出力フォルダが異なります。あなたのx86構成は、あなたが探しているオリジナルのbinフォルダーを引き続き使用しますが、新しいx64構成はその出力を別のフォルダーにダンプします。

Visual Studioは現在の構成の出力フォルダを追跡しているため、正しいEXEが起動しています。しかし、あなたがそれを自分で起動すると、あなたは間違ったフォルダを探しています。決して変更されていない32ビットEXEを実行しています。

出力パスの場所を確認するには、プロジェクトのプロパティ(Solution Manager内)に移動し、[ビルド]タブをクリックします。 "出力パス"と表示されたテキストボックスの下側にリストが表示されます。

デフォルトでは、x86はbin\Debug\を使用し、x64はbin\x64\Debug\を使用します。

+0

私は最初からbin/x64/Releaseディレクトリからexeを起動しました。私は、「変更日時」の列に目を通して、exeファイルが存在するかどうか確認していました(これはソリューションディレクトリに対する相対パスです)。私はソリューションを構築したときに生成されました。そのexeは私が期待したように動作していませんでした。 – Simonca

関連する問題