Visual Studio でプロジェクトのデバッグを開始時に編集したソースコードが実行結果に反映されない - Visual Studio

Visual Studio でプロジェクトのデバッグを開始時に編集したソースコードが実行結果に反映されない現象について紹介します。

現象

Visual Studio でプロジェクトのデバッグ実行を開始した際に、直前まで変更していたコードがデバッグ実行中のプログラムに反映されない場合があります。
プロジェクトをクリーンして再度ビルドした場合や、リビルド実行により、変更したコードが実行結果に反映されますが、デバッグの開始だけでは反映されません。

発生状況

古いVisual Studio で作成したプロジェクトを新しいVisual Studio で実行した際に、この現象が発生することがあります。

原因

いくつか原因がありますが、よくある原因として構成マネージャーでビルドの設定をしていないことが挙げられます。

対処手順

Visual Studio を起動しデバッグ開始しても最新のコードが反映されない現象が発生するプロジェクトを開きます。
プロジェクトソリューションウィンドウのプロジェクトのノードをクリックして選択し右クリックします。 ポップアップメニューが表示されますので、[構成マネージャー]の項目をクリックします。


下図の[構成マネージャー]ウィンドウが表示されます。デバッグ開始時にコードが羽いされないプロジェクトの設定を確認すると[ビルド]の項目にチェックがついていないことがわかります。 また、[プラットフォーム]の項目が他のプロジェクトは "Any CPU" になっているところ、問題のプロジェクトは "x86" になっています。


[ビルド]のチェックボックスをクリックしてチェックを付けます。この設定でデバッグ開始時にビルドも自動実行され、最新のソースコードがデバッグ実行に反映されるようになります。

補足 : プラットフォームを Any CPU に変更する

先ほどのチェックでデバッグ時にビルドを実行する動作になりますが、 プラットフォームの設定もほかのプロジェクトと設定を合わせるため "x86" から "Any CPU" に変更する手順を紹介します。~
[構成マネージャー]ウィンドウで、"x86" のプロジェクトの[プラットフォーム]列のコンボボックスを開きます。下図の画面が表示されます。 コンボボックスの候補の中に "Any CPU" が無いことがわかります。コンボボックスの [<新規作成...>] の項目をクリックします。


[新しいプロジェクト プラットフォーム]のダイアログが表示されます。ダイアログの[新しいプラットフォーム]のコンボボックスで "Any CPU" を選択します。 また、[設定のコピー元]は[<空>] とします。設定ができたら[OK]ボタンをクリックします。


[Any CPU]のプラットフォームが作成され、構成マネージャーの[プラットフォーム]の設定も "Any CPU"に変わります。


コンボボックスをクリックすると、[Any CPU]の項目と元から存在していた[x86] の項目が表示されます。"x86" のプラットフォームを削除しておきます。 プラットフォームのコンボボックスのリストから [<編集>] の項目をクリックします。


[プロジェクト プラットフォームの編集]ダイアログが表示されます。左側の[プラットフォーム]のリストから "x86" をクリックして選択します。 選択された状態で、右側の[削除]ボタンをクリックします。


削除確認ダイアログが表示されます。[はい]ボタンをクリックしてプラットフォーム設定を削除します。


"x86"の項目は削除され、"Any CPU" の項目のみが残ります。ダイアログ右下の [閉じる] ボタンをクリックしてダイアログを閉じます。


[構成マネージャー]ウィンドウに戻り、[プラットフォーム]のコンボボックスをクリックします。ドロップダウンリストが表示されます。 リストの中に "x86" の項目が無くなっていることを確認します。

補足 : 対象プラットフォームを Any CPU に変更する

古いプロジェクトの場合、ビルドの対象プラットフォームが"x86"に設定されている場合がありますので変更します。"x86"の状態でも動作しますが、 Any CPUに変更しておいたほうが無難です。
ソリューションエクスプローラでプロジェクトのノードをクリックして選択します。右クリックしてポップアップメニューを表示します。メニューの [プロパティ]の項目をクリックします。


プロジェクトの設定画面が表示されます。左側のメニューの[ビルド]の項目をクリックして選択します。下図の画面が表示されます。 [対象プラットフォーム]が "x86" に設定されています。


コンボボックスをクリックしてドロップダウンリストを表示します。一覧から "Any CPU" を選択します。(昨今はほとんどが、64ビットマシンなので"x64"を選択しても良いかと思います。)


"Any CPU" に設定しました。


64ビットマシンで64ビットで実行したい場合は[32ビットを選ぶ]のチェックボックスのチェックを外すと、64ビット版のアプリでビルドされます。


以上の設定で、デバッグ時に最新のソースコードがプログラムに反映されるようになります。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
掲載日: 2020-05-12
iPentec all rights reserverd.