2017-12-26 36 views
-1

私はVS(Visual Studio)2010からVS2017を1台のマシンから別のマシンに移植しました。私はデバッグできませんでした。私は何が問題なのかを知る必要があります。実行中は、ブレークポイントのマークが変更されて警告が表示されるのがわかりますが、何が間違っているのかわかりません。それはすべてが大丈夫だと思われる。ブレークポイントがVS2017にヒットしない

+0

警告メッセージは何ですか?どの種類のアプリをデバッグしましたか?プロジェクトをVS2010からVS2007に移動すると言ったように、VS2010で通常どおりにデバッグできるかどうか。もしそうなら、あなたのプロジェクトにVS2010からVS2017に更新する必要のある参照として特定のアセンブリがあるかどうか? –

+0

中空のブレークポイントにマウスを乗せたときにツールチップとして表示される警告メッセージは次のとおりです。ブレークポイントは現在ヒットしません。この文書にはシンボルがロードされていません。アプリケーションがログインフォームを表示します。使用が正常に認証されると、メインフォームが表示されます。問題はメインフォームの前であり、最初のステップではログインフォームです。はい、私は以前のマシンのVS2010でそれをデバッグできます。アセンブリについては、ブレークポイントは自分のソースコードにあるので、無関係なようです。 – hamidi

+0

ねえ、私はソースがネットワークドライブ上にある場合にのみデバッグにこの問題があることがわかりました。ソリューション全体をCにコピーすると、問題は解決されます。この知識によって、もう一度考えてみましょう。 – hamidi

答えて

0

あなたがプロセスを起動すると、ブレークポイントのアイコンが警告シンボルと中空なった場合、その後、デバッガはプログラムの一部は、ソースコードの行に対応するものを把握することはできません。これは通常、ビルドが実行可能ファイル、DLL、またはPDBファイルで古くなっているためです。このような状況に入るために

一般的な方法は、ビルドが失敗したことに気づくと、デバッガは、電流源に対応していない古い実行可能ファイルを実行してみましょうではないことです。また、Visual Studioがいくつかの依存関係について混乱し、再構築が必要なすべてのものを再構築しない場合にも発生する可能性があります(アップグレード後など、ソリューションやプロジェクトファイルに大きな変更を加えた後に発生する可能性があります) 。これらのケースでは

、ビルドディレクトリを一掃し、すべてを再構築するためのVisual Studioを強制します。これは通常、あなたを同期させて戻します。 DLLがロードされるまで

あなたはDLLのコードにブレークポイントを設定し

は、そのブレークポイントは、中空の警告状態で表示されます。プログラムが遅延読み込みを使用している場合や、DLLを手動で読み込む場合(LoadLibrary呼び出しなど)には、一般にこれが表示されます。 DLLがロードされると、DLL内のブレークポイントアイコンは通常の赤ボール状態に戻ります。 DLLがまだロードされていないと思われる場合は、デバッガの[出力]ウィンドウで、実際にロードされたかどうか、およびそのDLLから対応するシンボルをロードする際の警告またはエラーがないかどうかを確認します。

+0

あなたの答えに感謝します。あなたが答える前に、私はこれらすべてをチェックしました。私はそれらをLoadLibraryしていません。確かに私はC#でそれを行う方法がわかりません。行はロードされたDLLに属します。それ以外の場合、フォームは表示されません。時代遅れではないコードについては、投げられた例外を表示するためのフォームのように、私が行った変更を参照してください。変更されたコードが実行されています。同じコードでブレークポイントは中空です。私は再建と清掃を試みましたが、それはあまり助けにもなりませんでした。私はすべて成功した問題を解決するのに役立ちますが、今は何が間違っているのか分かりません。 #2を除いて – hamidi

0

1)アプリケーションを再構築してみます。 「Debug」モードになっていることを確認してください。あなたは手動で必要な.NETバージョンを選択している場合Visual Studioは、正しいコードタイプの構成を混乱してしまう場合

2)それはVS2010で正常に動作しますが、VS2017に失敗した場合、私は疑問に思います。 VS2010ではFramework 3.5を使用していますが、Framework 4.6などのVisual Studio 2017では、デフォルトで自動的にデバッグするコードタイプ(v4.6、v4.5、v4.0)が決定されます。この場合、の "Attach to process"ウィンドウで "Select ..."ボタンをクリックし、Managed(v3.5、v3.0、v2.0)を選択する必要があります。

3)/クリア[デバッグ]メニューの[すべてのブレークポイントを削除し、すべてのブレークポイントを削除]を選択してください。理由は、プロジェクトのVisual Studio設定ファイルを更新するためです。

4)可能性回避策:オプション、デバッグの「ソースファイルを元のバージョンに一致させる必要があります...」をオフにします。

+0

、私はそれらのすべてを試してみたが、問題を解決しなかった。約#2、あなたはもっと説明しますか? VS2010では、プログラムは.net 4.を使用します。私は設定を変更しませんでした。どのように私はどのバージョンの.netを使用していると私はそれを変更することができます必要な場合は知っている?と私はコードをデバッグしたが、F5キーを押すのではなく添付する必要があるという意味ですか? – hamidi

+0

@hamidiプロジェクトが既に.NET Framework 4.0を対象としている場合は、.netバージョンの問題ではない可能性があります。プロジェクトを作成した後でエラーが発生したことがあるかどうか尋ねてもよろしいですか?私はWinFormアプリケーションを別のマシン上の古いバージョンのVSで作成し、現在のマシン(VS2017)に移動しましたが、何かが欠落しているように見えるので、ブレークポイントは空ですがエラーが発生します。ソースコードは元のバージョンとは異なります。それはブレークポイントを設定したところでUIコントロールが欠けていたため、ブレークポイントがヒットしなかったのです。 –

+0

@hamidiあなたのプロジェクトのサンプルを私と共有することができれば、私は自分のマシンでテストします。 –

関連する問題