Visual Studio 2015プロジェクトがデバッグモードで実行されなくなった


95

これは、デバッグ構成で実行した場合でも得られるものです。

これを表示する方法は、「Just My Code」を有効にし、起動時にユーザーコードがない場合に警告することでした。これは最近私たちのプロジェクトに起こったものであり、私たちがこれを引き起こしたために何をしたのかわかりません。しかし、私はそれを修正することができませんでした。ブレークポイントは起動せず、クイックウォッチは奇妙な結果をもたらします。

私は問題をグーグルで試しましたが、標準の「ブレークポイントは発火しない」ソリューションはどれもうまくいきませんでした。私はすべてアイデアがなくなった。

私は構成マネージャーを確認しましたが、すべてのプロジェクトもそこでデバッグするように設定されています。

ここに画像の説明を入力してください

「最適化を有効にする」をオフにすると、「リリースビルドをデバッグしています」ダイアログが表示されなくなります。実行して、ブレークポイントで再び停止します!ただし、出力ウィンドウには起動時に次のように表示されます。

モジュール 'Navigo.exe'のシンボルがロードされていません。

  1. デバッグビルド構成を使用するか、デバッグオプション「Enable Just My Code」を無効にします。
  2. デバッグオプションの[シンボル]設定を確認します。

これにより、ブレークポイントとポップアップを使用できなくなるという私の主要な問題が解決されます。ブレークポイントを機能させるにはシンボルをロードする必要があると思ったので、これは奇妙です。では、シンボルが読み込まれていない場合、ブレークポイントはどのように機能しますか?多分それはただの悪いメッセージですか?


簡単に言えば、あなたは私たちが知らないある種の問題を抱えていました。また、グローバルデバッガー設定を変更したところ、2つの問題が発生しました。すべてを元に戻し、最初の問題を説明します。
Hans Passant

@HansPassantこれは元の問題です。VS2015を使用するようにアップグレードすると、問題が発生し始めたようです。投稿する前に、「will this work」の変更を元に戻しました。「コードの最適化」のチェックを外すことで改善したようです。詳細については、問題のUpdate 2を参照してください。
セン

あなたの解決策が何であるかを詳しく説明できますか?プロジェクトとは何か、言語は何か、対象は何ですか、これはスタートアッププロジェクトですか?
Lucian Wischik

Just my Codeを再度有効にします。ソースコードを持っていない参照アセンブリをデバッグしようとしていますか?
Igor Quirino 2015年

回答:


95

構成マネージャーを使用して、デバッグ構成の実際の設定を確認します。これは、[ ビルド ] →[ 構成マネージャー ]メニューにあります。リリースを使用するように設定されている場合:

構成マネージャー

また、プロジェクトがデバッグを正しく定義していること、および「コードの最適化」がチェックされていないことを確認してください。

プロパティ


2
そこでチェックしたところ、すべてデバッグに設定されています。スクリーンショットで投稿を更新しました。他のアイデアはありますか?
セン

1
私の質問を編集しました。最適化コードがチェックされましたが、チェックを外すと効果があるようです。詳細については質問を参照してください。
セン

1
@Sen誰かがデバッグビルド設定を誤って構成したようです。最適化されたコードを使用したデバッグビルドは意味がありません。シンボルの問題について:たぶん誰かがデバッグビルドのためにそれらを無効にしましたか?ビルド設定の[詳細]ボタンをクリックして、デバッグビルドで[デバッグ情報]が[フル]に設定されていることを確認します。
cremor 2015

6
最適化コードのチェックを外すとうまくいきました。最初はどのようにチェックされたかはわかりませんが、一度オフになると、すべてが再び機能し始めたようです。他のすべてのデバッグ設定は正しかった、これはたった1つのうちの1つでした。また、「シンボルが読み込まれていません」というメッセージが表示されなくなりました。
セン

94

これはいくつかのプロジェクトでも起こりました。stuartdの提案に従って、ビルド設定を確認しました。ただし、ビルド設定で「コードの最適化」が有効になっていませんでした。それを有効にしてプロジェクトを保存しました。その後、チェックを外して再度保存しました。問題が解決しました。

--optimize+フラグがデバッガーに渡される原因となる、ある種のバグがあります。有効にしてから無効にすることは、バグが修正されるまでの簡単な回避策です。


1
これは以前IntelliJ IDEで見たことがありますが、Visual Studioでは今まで見たことがありません。奇妙なことに、これは私にとってもうまくいきました。
ZaneDarken

1
2017年の更新:この問題はVisual Studio 2015 Update 3でも見られます。承認された回答では問題は解決しませんでした。この答えはしました。
Lews Therin 2017年

1
この答えは、デバッグ環境も修正しました。よろしくお願いします!
bob.mazzo 2017年

1
うわー!私はこの正確な問題を抱えていて、これも私のために働いた。VS 2015 U3。信じられない...
AbeyMarquez

1
VS2017コミュニティ、まだこの問題があります。このソリューションに感謝
ウィリアムボルゴ2017年

20

これはUpdate 1を適用した後に起こりました。既存のプロジェクトがこれを表示し始め、まったく新しいプロジェクトで複製できます。すべての構成はデバッグに設定され、最適化はチェックされません

キッカーは、最初に(またはCleanの後に)プロジェクトを実行すると、メッセージなしで問題なく実行されます。停止してからプロジェクトを再実行すると(注-プロジェクトは再構築されません)、ダイアログが表示されます。

唯一の解決策は、Just My Codeオプションをオフにすることです。これは、問題なくUpdate 1より前のバージョンであったため、ハックのようです。


6
何が価値があるかについて、マイクロソフトのサポートが問題を再現し、調査中です。連絡があり次第、ご連絡いたします。
John T

2
ここで同じ状況と症状がVS2015 Update 1の後に現れました。実際にそれがその後初めて正しく機能するため、すべてのデバッグセッションの前にクリーンを実行することは回避策として使用できます。再構築を行うだけでは十分ではなく、クリーンが必要です。
AronVanAmmers 2015

2
マイクロソフトからの言葉によると、これは既知の問題です(元々はデバッガチームに行きましたが、ビルドの問題であると判断され、現在はプロジェクトシステムチームが担当しています。この問題には他にもバグがあり、優先度1と評価されているため、次のアップデートに向けて順調に進んでいるはずです。予想どおり、いつリリースされるか(または実際にアップデートに何が含まれるか)については、何も約束できません。オン。デバッグの一般オプションで「Enable Just My Code」を少なくともオフにすることは、今のところ回避策のようです
John T

この問題へのリンクはありますか?
SkyrawrCode 2016年


13

上記の解決策のいずれも役に立たなかった場合は、プロジェクトのAssemblyInfo.csで明示的なDebuggableAttributeアプリケーションを確認してください。コンパイラのデバッグ/リリースオプションをオーバーライドするようです。

私の場合、ファイルにこの行が含まれていました(レガシープロジェクト。それを削除すると問題が解決しました:

[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

2
これをありがとう。クライアントが元のソースコードを失ったプロジェクトに取り組んでいるので、逆コンパイラを使用して生成する必要がありました。私の唯一の推測では、逆コンパイラは、この行を置くことである。
jebar8

ええ、それは私の場合にも理由かもしれません。共有いただきありがとうございます。
Dmitry Rotay 2016年

10

[ デバッグ ] → [ オプション ]メニューを選択し、[ JIT最適化抑制 ]オプションの選択を解除します。わたしにはできる。

ソース:https : //connect.microsoft.com/VisualStudio/feedback/details/2116788/flag-optimize-is-passed-to-the-debugger-even-while-the-build-settings-optimize-code-is- not-enabled-on-mvc-c-web-projects-when-using-just-my-code


リンクが(事実上)壊れています:"Microsoft Connectが
Peter Mortensen

9

私もこの問題に遭遇しました。有効だった修正は、プロジェクトを単純にクリーンアップ(Build > Clean Solution)してリビルド(Build > Rebuild Solution)することでした。


詳しく説明できますか?たとえば、それを行う方法(呼び出すメニューコマンドなど)は?
Peter Mortensen


3

stuartdの答え補足を追加するだけです。

同じビルド設定の依存プロジェクトを必ず確認してください。メインプロジェクトに適切な設定がある場合、同じメッセージプロンプトが表示されますが、依存プロジェクトにはありません。後から考えると当然のことですが、最初に思い浮かんだのはそれではありません。


3

私の場合の問題は、ASP.NETプロジェクトプロパティのWebタブのIIS プロジェクトURLが誤ったURLに設定されていたことでした。

プロジェクトの別のコピーで使用していたhttp:// localhostを指していました。私が開いたソリューションのアドレスは、実際にはローカルIISでhttp:// localhost:90として構成されていました。

正しいアドレスに変更すると、問題が解決しました。

ここに画像の説明を入力してください


2

私はこのリストのほとんどすべてを試しましたが、最終的にはソリューションのプロパティを開き、「複数のスタートアッププロジェクト」から「単一のスタートアッププロジェクト」に切り替えて再び元に戻し、これを修正しました。

  1. ソリューションを右クリックして、[プロパティ]を選択します
  2. [共通プロパティ]で、[複数のスタートアッププロジェクト]の選択を[単一のスタートアッププロジェクト]に変更します。
  3. OKをクリックします
  4. デバッグを実行する
  5. デバッグを終了し、手順1〜3を繰り返しますが、「複数のスタートアッププロジェクト」に切り替えます。
  6. 複数のプロジェクトでデバッグを再度実行する

2

同じ問題が発生しました...何をしても、何も機能しませんでした。

問題となったのは、新しい空のプロジェクトでした。最終的にプロジェクトを削除して新しいプロジェクトを追加しました。新しいプロジェクトには別の名前を付ける必要がありました。同じ名前を使用した場合、エラーが再表示されました-再起動後もクリーンアップして再構築します...これはVisual Studio 2015のバグである必要があります。


2

私にとって、それはプライベートNuGetサーバーからのNuGetリファレンスでした。どのようにコンパイルされたかはわかりませんが、参照をプロジェクト参照に変更すると問題が発生しなくなりました。


1

Visual Studio 2012 ExpressプロジェクトをVisual Studio 2015 Expressで開いたところ、同じ問題が発生しました。

ソリューションプロパティ→ 構成プロパティを確認したところ、プロジェクトがリリース&x86に設定されていることがわかりました。

DebugAny CPUに戻しましたが、プロンプトが消えました。


1

私の場合、私はOutlook用のVSTOプラグインを開発しており、Outlookは、インストーラーのテスト中に、最近インストールしたDLLファイルのリリースバージョンを誤ってロードしていました。

Visual Studioが、予想したデバッグDLLではなく、そのDLLを使用しようとしていたようです。Outlookによって読み込まれているDLLファイルを修正すると、これが修正されます。


0

私の他の答えをここからコピーします

@romanozaが言及したように、Microsoftは次の情報でバグレポートを更新しました。

[デバッグ]-> [オプション]-> [モジュールのロード時にJIT最適化を抑制する]の設定をオフにします(管理のみ)

これが回避策です。彼らは後で言うようになります:

オフにした場合、特定のシナリオでコードのみのパフォーマンスと動作の両方が向上するため、オフにしたままにすることをお勧めします。

最後に、承認:

この設定を有効にしても機能しないのはバグであり、一部のお客様がその設定をオンにしたままデバッグしたい場合に備えて、この状況の修正に取り組んでいます。




0

解決手順:

  • 問題のプロジェクトのプロパティページのビルド設定に移動します。

  • 右にスクロールして[ 詳細 ]ボタンをクリックします。

  • 「デバッグ情報:」「なし」に  設定されていないことを確認してください。

    フルオプションを使用することをお勧めします。


デバッグするすべてのアセンブリに対してこれを行うことを忘れないでください。
Igor Quirino 2015年

0

質問へのコメントとしてPatrickによるリンクを表示した後、誰かがIIS Expressでサイトを停止するという回避策を指摘しました。Visual Studioでデバッガーを停止した後で、同じ問題が発生するのを防ぐことができました。

しかし、もっと詳しく調べていて、デバッガーの「編集して続行」設定にも関連していると思います。Visual Studio のメニューの[ ツール ] →[ オプション... ]でこれを無効にすると、問題は発生しなくなりました。しかし、それではエディットコンティニュー機能を使用できなくなるため、それが価値があるかどうかはわかりません。

メニューツールオプションデバッガ編集して続行(全般リストの一番下までスクロール)→ 編集して続行チェックボックスをオフにします。

また、Update 1をインストールした後に突然これを経験しましたが、最初にこの設定をオフにした可能性があります...


0

さらに遅延することなく続行する必要がある場合は、ポップアップから最後のオプションを選択すると、すべてが以前と同じように実行されます。

ここに画像の説明を入力してください


JPEG画像はスクリーンショットに最適ではありません。(鮮明な)PNGバージョン(またはGIF)に置き換えることはできますか?
Peter Mortensen

0

これは奇妙な警告でした。

ソリューションを再構築しても、必ずしもすべてのDLLファイルがクリアされるわけではありません(特に依存プロジェクトからコピーされたファイル)。

ただし、依存関係プロジェクトを再構築すると、このアラートはなくなりました。

Visual Studio 2015 Update 3でこれに直面しました。


0

私のソリューションは他のソリューションとは少し異なり、少しユニークです。

マネージコードとASPクラシックの両方が同じアセンブリを参照しているWebサイトを使用しています。Visual Studioは、マネージDLLファイルがリリースビルドであると不平を言っていました。

この問題は私のアセンブリで捕捉されなかった例外でしたが、相互運用機能を介してASPクラシックページによってスローされていました。Visual Studioはこれをデバッグできず、エラーメッセージが表示されました。マネージコードからスローされた同じ例外は、デバッガーを期待どおりに起動します。

マネージアセンブリのコンストラクターの問題を修正すると、すべてが修正されました。

全体像を振り返ってみると、今ではすべて理にかなっていますが、そのとき、エラーメッセージが私を非常に深い道に導いてくれました。瞬間。


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