「ブレークポイントは現在ヒットしません。ソースコードは元のバージョンとは異なります。」これは何を意味するのでしょうか?


514

Visual Studioでデバッグするとき、ブレークポイントを追加することがありますが、それは中空であり、VSは「現在、ブレークポイントはヒットしません。ソースコードは元のバージョンと異なります。」明らかにこれは私がデバッグすることができないようにします。

メッセージはいったいどういう意味ですか?元のバージョンは何ですか?ソリューションを開いたばかりで、コードにまったく変更を加えていない場合、どのようにして「元のバージョン」を作成できますか?


36
ブレークポイントを追加する前にプロジェクトを再コンパイル/ビルドする
lexu

別のバージョンのビジュアルスタジオで書かれたプロジェクトを開いていますか?
Mahesh Velaga、2010年

2
それはウェブサイトプロジェクトです。明示的にビルドする必要はありません。使用時にコンパイルする必要があります。VSがウェブサイトを構築できないのではないかと思いますが、そうではありません。Mahesh-いいえ、すべて同じバージョンのVSです。
David

私の場合、同じコードの異なるリリースがあります(たとえば、Liveバージョンとdevolopmentバージョンのtest.csの場合、devolopmentバージョンを開いてtest.csにブレークポイントを設定すると、同じエラーが表示されましたが、ブレークポイントテストを実行したことがわかりましたライブバージョンslnに関連する.csクラスはdevolopmentではないので、csが既にソリューションを構築中であることを確認してください)
dankyy1

5
再構築よりもbinおよびobjディレクトリを削除するとうまくいきました。
AycanYaşıt2014年

回答:


277

それが言うように、「ソースコードは元のバージョンとは異なります」。

ソリューションエクスプローラー内のプロジェクトフォルダーを右クリックし、を選択しCleanます。プロジェクトの新しいバージョンをビルドすると、ブレークポイントが再び機能します!


120
cleanを使用しても常に機能するとは限りません。binフォルダー内のすべてを手動で削除して、再び機能させる必要がありました。
Carra

3
誤って、binフォルダーにDLLへの参照がありました。修正された参照パスが修正されました。
Brad Urani

39
私にとっては、binおよびobjフォルダーを削除することもできませんでした。Visual Studioも再起動する必要がありました。
d512 2014年

1
解決策を見つけるためにほぼ1日を費やしました。解決策を提供してくれてありがとう。
Racs

8
私はVSを閉じ、すべてのbinおよびobjフォルダーを削除し、すべてを再ビルドし、ビルド構成を再確認しました。ビルドは成功しています。サイコロはありません。単純なことはこれほど複雑であってはなりません。>:|
snarf 2015年

129

デバッグビルド構成DLLプロジェクトをオフにした場合、新しいコードはビルドされません。

Build --> Configuration Manager ...(VS2010で)に移動し、デバッグしようとしているコードを含むプロジェクトの現在のビルド構成がチェックされているかどうかを確認します。


提案オリバーをありがとう。これは間違いなくここでは起こっていません。私のプロジェクトの1つが構築されていなかった場合、すぐに気付くでしょう。
David

3
私はまったく同じ問題を抱えていましたが、チェックされていないものはありませんでした。私のローカルマシンはx64ですが、そのダイアログではx86用にビルドされただけです。だから私はAny CPUオプションを選択し、それは再び動作します。
JP Hellemons

3
有効な理由なしにデバッグ構成からプロジェクトを削除すると、その構成はCIビルドマシンで使用される可能性があるため(私はそれがここにあることを知っているため)、最終的に失敗する可能性があります。私はそれが多くのビルドステップの1つである可能性があることを知っていますが、それでも...オリバーチームメンバーがあなたにビスケットを買ってくれることを願っています!:)
Fetchez la vache 2013年

AnyCPUではなくx86向けのビルドに切り替えたときに、この問題が発生しました。なんらかの理由でプロジェクトのビルドが削除されました。
Adam Pedley

プロジェクトはビルドイン構成マネージャーにリストされているので、これは私が恐れている助けにはなりません:(
Ortund

43

私にとっては、WebSiteプロジェクトに取り組んでいたときのことです。これらの一時フォルダーをクリーンアップした後、適切なコンパイラエラーが返されました。

  • C:\Documents and Settings\%username%\AppData\Local\Temp\Temporary ASP.NET Files
  • C:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

故意にサブフォルダーに移動したクラスファイルが、どういうわけかルートフォルダーに再表示されたことがわかり、最終的に問題を解決しました。VSは、私がもう一方を編集しているときに、その1つを使用していました。


2
windowsディレクトリの一時ファイルを空にすることで、うまくいきました。
ChrisFletcher

7
私は同様の答えを追加したかっただけです-プロジェクトのdllの古いコピーが、C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \のようなASP.NETが使用する一時フォルダーのいずれにも存在しないことを確認してくださいTemporary ASP.NET Files-前述のとおり-C:\ Windows \ Microsoft.NET \ Framework_64_ \ v4.0.30319 \ Temporary ASP.NET Files。私はすべてを使用して、それらのコピーすばやく検索します。
オリバー

12
簡単なヒント:%localappdata%検索ボックスに入力すると、次の場所に直接C:\Documents and Settings\%username%\AppData\Local
アクセス

1
これがVisual Studio 2013のWebサービスプロジェクトで機能したことを確認できます。
Moeri、2014年

これはすべてやりましたが、役に立たなかったようです。私もこれを見て本当に興奮しました。
Ortund、2016年

40

あなたはこれをしたことがありますか?

最後に成功したビルドを続行して実行しますか?

ボックスをチェックして「はい」を押すと、プロジェクトがコンパイルされなくても、最後に成功したビルドが実行されます。これは、ブレークポイントを設定するたびに、そのエラーが発生することを意味します。

この値を変更してみてください:

  • ツール
    • オプション
      • プロジェクトとソリューション
        • ビルドして実行
          • 実行時、ビルドまたはデプロイメントエラーが発生した場合:起動しない

私はそれをしたとは思わない。リンクありがとうございます。それは私にそのプロンプトが何を意味するかについての洞察を与えました!
デビッド

11
Visual Studioにはこのオプションが何十年もありました(少なくともVS98にはありました)。誰もが最後に成功したビルドを実行する理由を理解できませんでした。結局のところ、それが私が望んでいたことなら、とにかくデバッグできなかったので、それを直接起動したでしょう。「起動しない」の方がデフォルトのほうが賢明でしょう。
OregonGhost

6
コンパイルされないコードを書いている最中に、プロジェクトを実行するために(他の誰かに見せるためなど、何らかの理由で)何度か使用しました。時にはそれは便利です。個人的には無効のままにしておきます。
Codesleuth、2010年

3
たぶん、彼が突然やってきたときに上司に見せなければならなかったかもしれません。彼らはf5を押して、「なるほど、うまくいく!」
ギガラ2016

33

に行く

  • ツール
    • オプション
      • デバッグ中
        • 一般的な

元のバージョンと完全に一致するようにソースファイルを要求するのチェックを外します


17
@Rachmadこのソリューションは機能します。しかし、ソースファイルが元のバージョンと完全に一致していないことを意味するため、完全なソリューションではないようです
onmyway133

これはまさに私が@entropyで探していたものです。これにより、ブレークポイントを設定できますが、実際には、使用されているソースが、使用されているpdbと一致していません。最良の解決策はそれを修正することです。できない場合には、これはうまくいきます。
JamesG 2013

これをオフにしても、実行はブレークポイントに
到達

12
これはこの問題の解決策ではありませんが、回避策です。明らかに、デバッガーで古いファイルを操作したくありません。
Obi Wan

2
@ObiWan明白ではありません。ソースとビルドが異なることを知っていても、マイナーな編集を行い、デバッグを続けたいと思います。
Alan Baljeu

30

リリースではなく、ソリューション構成デバッグを選択します。

メニューのスクリーンショット


1
これは私の問題でした。デバッグモードでコンパイルし、コードを変更してから、後でリリースモードで実行しました。デバッガーがコードが異なると思ったのも不思議ではありません-デバッグシンボル異なっていました。他の人が提案したようにbinフォルダーを削除すると、「このドキュメントにはシンボルが読み込まれていません」というエラーが表示されました。私がつながりを作り、この答えにたどり着いたのはそのときだけでした。もっと投票が必要です!
indot_brad 2013年

デバッグビルド構成でも、プロジェクトのビルドを無効にすることができます。ビルド構成の調査が必要です。デバッグ/リリース構成間のフリップフロップは無意味です。
Asad Saeeduddin 2014年

私にとってもこれで終わりです。他の参照されたソリューションを掃除して再構築しようとしたが、役に立たなかった。解決策が私を正面から見つめていたことに気づかなかった
Adam Hey

これは私に起こったことです-私は自分のプロジェクトをビルドして私のdllを何度も交換していましたが、問題は消えません。/ bin / debugフォルダーからdllを置き換えるときに、コードがリリースモードでビルドされていることに気付きました。バカにして。
displayName 2017

リリースモードでビルドされたプロセスにアタッチしたかったのです。デバッグに切り替えると問題が解決しました。
fivef

27

VSの[出力]ウィンドウに注意してください。どのアセンブリがいつ読み込まれるかがわかります。フォルダーのどこかに古いバージョンのアセンブリが読み込まれているのがわかるでしょう。

たとえば、複数のアセンブリがあり、現在サポートアセンブリの1つで中断しようとしている場合、CLRはアセンブリの解決を処理します。これにより、プロジェクトで参照したものとは別のアセンブリファイルが読み込まれる可能性があります。


1
また、心に留めておく価値はありますが、クラスライブラリではなく、ウェブサイトプロジェクトに侵入しようとしているので、ここでは問題ではないと思います。
David

24

Visual Studioを閉じてソリューションを再度開くと、問題を修正できます。つまり、IDE自体のバグです(VS2010を実行しています)。

Visual Studioの複数のインスタンスを実行している場合は、問題のあるソリューションを実行しているインスタンスを閉じるだけで済みます。


4
Visual Studioを閉じることも私にとってはうまくいきました。また、Clean / Rebuildアクション付き。
danielB 2014年

3
これにより、VS 2015でのソリューションが修正されました
TaintedLemon

3
VS 2017で修正された問題
Daniel Fisher lennybacon

VS 2012の問題を修正
seebiscuit 2018

19

この問題を解決する新しい方法がVisual Studio 2017 15.3.1から15.3.5で登場しました。EditorConfigを使用している場合、charset=utf8オプションによりこれらの症状が発生ます。VSチームはこれを再現し、現在取り組んでいる述べています。

したがって、1つの修正はcharset=utf8、.editorconfigファイルの行をコメント化することです。

編集:これはVS 15.5で修正される必要があります。


2日前(2017年10月9日)のステータスは「修正済み-リリース待ち」です。これは朗報です。UTF-8が最近のテキストエンコーディングの唯一の健全なデフォルトであるためです。:-)
rmunn 2017年

また、この問題の最終的な原因は、明らかに他のバグ修正でありcharset=utf8、「BOM付きのUTF-8」と解釈されていたことがわかりました。その解釈を「BOMなし」に変更すると、BOMが含まれている一部のUTF-8ファイルが破損しました。したがって、この問題が発生し、Visual Studioの修正がまだリリースされていない場合は、テキストファイルの先頭からBOMを削除してみてください。これで問題が解決する可能性があります。(このコメントはZero Wingの参照を懇願しています... :
rmunn

これも私にとって問題でした。現在、これは修正されていないか、少なくともまだリリースされていないか、バグが再導入されています(バージョン15.4.2)
avidenic '11

12

これは、(プロジェクト内のコードへのプロジェクト参照ではなく)バイナリへのファイル参照を使用していて、参照しているコンパイル済みバイナリがマシンの対応するソースコードと同期していない場合にもよく発生します。これは、ソース管理から新しいバージョンのバイナリをダウンロードしたときに、ソースコードを使用せずにダウンロードしたか、マシンにいくつかのバージョンのバイナリがあり、古いコピーを参照しているなどの理由で発生する可能性があります。問題は、プロジェクト参照を実用的な範囲で使用するのがもっともな理由です。


私はあなたが何を意味するかを理解しています、そしてそれは将来のために心に留めておく価値がありますが、ここで問題になっているソースはクラスライブラリではなくウェブサイトプロジェクトです。
デビッド

これは、ソリューション内の別のプロジェクトでのみ使用されるソリューション内のプロジェクトからDLLを参照することを決めた天才が頭を悩ませるレガシーコードを拾うときによくある問題です。ため息
Kell

10

私にとって、問題はどれも解決しませんでした。その関数内に次のような新しいコード行を追加しました。

int a=0;

それを追加することで、私はビジュアルスタジオをトリガーしてこの機能を元のバージョンに追加したと思います


7

これは、デバッグ中またはデバッグセッション間でシステム時間が変更されたときに発生する可能性があります。


これを十分に+1することはできません。最近Windowsを再インストールしましたが、システムクロックがずれていることに気付きませんでした。案の定、この変更によりすべてが台無しになり、ソリューション/プロジェクト全体を再構築して魔法のように修正しました。
Kyle Baran 14

7

私にとってこの問題を修正したほとんど気付かない設定があります。ブレークポイントがヒットしない特定のソースファイルがある場合は、

  • ソリューションエクスプローラー
    • ソリューションを右クリック
      • プロパティ
        • 共通のプロパティ
          • ソースファイルのデバッグ
            • 「これらのソースファイルを検索しないでください」。

なんらかの理由で私にはわかりませんでしたが、VS 2013はそこにソースファイルを配置することを決定し、その後、そのファイルのブレークポイントにヒットできなくなりました。これが「ソースコードが元のバージョンと異なる」の原因である可能性があります。


私はまったく同じ問題に直面しました。あなたの答えは私を助けました!ありがとうございました!+1
jweyrich 2015年

5

問題は、デバッグ情報がアセンブリと同期していないことです。解決策は簡単です:

  1. binフォルダーに移動します
  2. .pdbファイルを削除する
  3. 再構築

トリックを行う必要があります!

(奇妙なことに、.pdbファイルを破棄せずに再構築すると、常に機能するとは限りません。変更された日付が更新されているのを確認できますが、チェーン(VS2013デバッガー、IIS、アセンブリキャッシュ)のどこかにこの変更が検出されません)


Build-> Clean Solutionは、削除する必要があるファイルの削除も実行する必要があります。
Dave

この問題のために時間を大幅に失った後、この解決策がうまくいきました。THXのFrankyHollywood
AD

4

このメッセージは、アクティベータを使用していて、ブレークポイントを設定したアセンブリがまだロードされていない場合に表示されます。

アクティベータがアセンブリをロードすると、ブレークポイントが解決されます(アセンブリとデバッグシンボルが最新であると想定)。見やすい場所は、デバッグメニューのモジュールウィンドウです。そこでは、ファイルが属するアセンブリも探す必要があります。まず、アセンブリがロードされていることを確認します。次に、どこからロードされますか?次に、シンボルファイルが読み込まれます。ここでも、シンボルファイルはどこから読み込まれますか?最後に両方のバージョンを確認します。


4

私もこれに遭遇しました。私の問題を引き起こした条件:

  • IIS7インスタンス全体をローカルで実行しています
  • ソフトウェアを個別のプロジェクトにバージョン管理しています

以前のバージョンを開いて(VSはIISデバッグでこのインスタンスをポイントするかどうかを尋ねるプロンプトを出し、「はい」と答えました)、次に現在のバージョンを開きます(再びIISプロンプトに「はい」と応答しました)。 )、その後、以前のバージョンでデバッグを試みます。

解決するには、以前のバージョンと意図したバージョンを閉じて再度開き、デバッグソースとしてもう一度アサートしました。


3

デバッグモードを起動する前にブレークポイントを実行するのではなく、デバッグモードで実行中にブレークポイントを無効にして再設定してみてください。


3

これは、CRL言語(Managed C ++、C#など)で実装されたモジュールをロードするC ++プロジェクトをデバッグするときにも発生します。この状況では、エラーメッセージは確かに誤解を招きます。

解決策は、共通言語ランタイム(CLR)サポート構成プロパティをスタートアッププロジェクトに配置して再コンパイルすることです。


3

あなたが持っている場合は、あなたのソリューションに複数のプロジェクトを、正しいプロジェクトは次のように設定されていることを確認してくださいStartUp Project。特定のプロジェクトをソリューションのスタートアッププロジェクトとして設定するには、プロジェクトを右クリックして、を選択しますSet As StartUp Project

スタートアッププロジェクトを正しく設定した後、スレッドが目的のブレークポイントに到達しました。


また、ブレークポイントがスタートアッププロジェクトではないプロジェクトにあり、スタートアッププロジェクトにできない場合(たとえば、別のプロジェクトをスタートアッププロジェクトにする必要があるため)、次のことができます(メインプロジェクトの開始後)。右クリックして[ デバッグ ]を選択します。ヒットするブレークポイントがあるプロジェクトの新しいインスタンス開始します
Caius Jard

3

vs2017の32ビットビルドでこれを体験しました。

ソリューションがまったく役に立たなかった。私は再起動し、IDEファイルをクリアし、ビルドされたソリューションをクリーンアップし、git repoからプルして、ソリューションを再構築して無用になりました。

私はnugetから64ビットの依存関係を取得していました。アセンブリを使用するとすぐに、ソースは最終的な実行可能ファイルに組み込まれなくなり、代わりにIDEキャッシュソースがビルドされました。

nuget構成を削除し、参照されたアセンブリを削除し、ソースをダウンロードし、log4netを手動で構築し、署名し、プロジェクトのフォルダーに追加し、参照を追加して、再びデバッグできました。

これは骨の折れる作業でした。回答リストに載って、すべての人に見てもらいたいと思います。

編集:IDEの設定で[ビルドエラー時にプロンプ​​トを表示する]オプションがオンになっているにもかかわらず、ビルド中にエラーは発生しませんでした。


3

私にとって、ソリューションはAdvanced Build Settingsプロジェクトのプロパティの中に隠されていました: ここに画像の説明を入力してください

不明な理由により、次のように設定されましたnone:に設定するとfull、ブレークポイントがヒットしました。

このダイアログを表示するには、プロジェクトのプロパティを開き、に移動してBuildAdvanced...ページの下部にあるボタンを選択します。


3

レイヤードアーキテクチャプロジェクトのいくつかのプロジェクトで同じ問題が発生しましたが、問題は、選択したプロジェクトのビルドチェックボックスがオンになっていない構成にありました。したがって、この問題は1つのプロジェクトで修正されました。

他の1つのレイヤーでは、構成でビルドが有効になっていても、同じ問題が発生していました。プロジェクトのクリーニングを再開するなど、他のすべてのオプションを実行しましたが、どれも役に立ちませんでした。最後に、その特定のプロジェクトのビルドチェックボックスをオフにし、クリーンアップして再ビルドしました。再びチェックボックスをマークし、同じことを行いました。その後、問題が修正されました。

お役に立てれば..


2

私の場合、VS 2012で実行中のプロセスにアタッチしていました。アタッチするときに、さまざまなモード(ネイティブ、スクリプト、Silverlight、マネージド2.0、マネージド4.0など)でデバッグするオプションが表示されます。デフォルトでは、デバッガーはモードを自動的に選択します。ただし、自動は常に正しい選択を行うとは限りません。プロセスに複数のタイプのコードが含まれている場合は、デバッガーが正しいコードを使用していることを確認してください。


私の場合、.NETコードをデバッグするためにw3wp.exeにアタッチしていましたが、何らかの理由で、C#ブレークポイントを表示できないスクリプトデバッガーをアタッチしていました。.NETデバッガーに変更すると、C#ブレークポイントが機能しました。
オランデニソン2014

2

私の場合、私はWindows CEアプリを開発し、エミュレーターに対してテストしました。問題は、実行可能ファイルがエミュレーターにデプロイされなかったため、新しい.exeがエミュレーターにコピーされなかったため、(開発環境の).pdbが(エミュレーターの).exeと同期していなかったということです。新しい展開を強制するには、エミュレータで.exeを削除する必要がありました。その後、うまくいきました。


2

私にとってうまくいったのは、ソリューションプラットフォームをx86から​​Any CPUに変更することでした。Anyに変更した後、停止アドレスを設定し、Webサイトを実行してページを開き、ボタンをクリックすると停止しました。私はサイトを閉じ、x86に戻し、同じシーケンスを正常に実行しました。


2
おそらく、CPUの選択は問題にまったく影響せず、それが再構築を強制するという事実だけですか?
jwg 2013年

それは別のbinフォルダーを使用します。おそらく、任意のCPUマップに古いdllがありました。
Carra

(私が使用したことがない)アクティブプラットフォームx86でこの問題が発生したため、Win32に戻すと問題が解決しました。PCは共有PCなので、誰かが何らかの理由でそのプラットフォームを設定します。
Zac

2

Windows 7で、Visual Studio Express 2010(Windows XP SP3の互換モードを使用するオプション有効にしている場合)、このエラーが発生することがあります。

私はオプションのチェックを外しました、そしてそれは再び完璧に働きました。VSまたは実行可能ファイルへのショートカットを右クリックし、プロパティを選択してから互換性を選択します


1
ここで起こっている可能性があるのは、互換モードを無効にすると、リリース構成がx32からx64に変更され、x32でビルドするプロジェクトのすべてが選択されない可能性があります。x32のビルドで特定のプロジェクトが無効になっている理由は、チームメンバーと話し合う必要があることです。
Asad Saeeduddin 2014年

それがまさに私の問題でした。ありがとうございました!
Johan Holtby 2014

2

最初にコマンドラインから試しました。

コマンドラインから一時ファイルを削除するも機能しました。

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files> rd / s root

「コードのみを有効する」無効すると[ツール]-> [オプション]-> [デバッグ]-> [全般]で[ ]オプション

問題は私にとって解決しました。これはWCFアプリケーションであり、ashxページをデバッグしようとしていました。 http://blogs.msdn.com/b/zainnab/archive/2010/10/25/understanding-just-my-code.aspx


2

ソリューションにビルドしていない他のプロジェクトがあったので、それは私に起こりました。これらの問題のあるプロジェクトをアンロードした後(ソリューションエクスプローラーでプロジェクトを右クリック->プロジェクトのアンロード)、ソリューションを再構築して再度実行しました-ブレークポイントに達しました!


2

既存のファイルをプロジェクトに追加した後、それは偶然Visual Studio 2017上にありました。これは私のために働きました:

  1. ソリューションを閉じます
  2. に移動しSolutionFolder\.vs\SolutionName\v15\sqlite3て削除storage.ide
  3. ソリューションを再度開きます

この解決策をありがとう!働く前は誰もいなかったし、これは私の日を救った:)
StefanaB

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.