わかりました、私が持っているもの:
Visual Studio 2010 RC、W7 x 64は、新しいプロジェクトタイプのSilverlightアプリケーションを開始しました。 SilverlightアプリケーションをASP.NET Webアプリケーションプロジェクトでホストする。 Silverlightバージョン3.0。 LinqToSQLクラス、WCFサービス、Winform Testerアプリケーション(ソリューション内のプロジェクト)、およびいくつかのクラス(ソリューション内のプロジェクトとしても)を追加しました。
昨日、突然私は「ブレークポイントは現在ヒットしません」になりました。この文書のシンボルはロードされていません。 IDEに表示されるメッセージは、Webアプリケーションにのみ影響しますが、SilverlightとWinformアプリをデバッグできます。
メッセージを取り除くために私が試みた/行ったこと:
だから、これは私の人生で2回目に起こります。前回はTemporary ASP.NET Files Folderを削除して問題を解決しましたが、今回はあなたの助けが必要です。
ソリューションを右クリック - >プロパティ
共通プロパティ - >スタートアッププロジェクトの下を見てください。
複数のスタートアッププロジェクトを選択
デバッグする必要があるプロジェクトに対して[Start action]を選択します。
私は同じ問題を抱えていたし、グーグルの後に私はこれのための2つの典型的な解決策を見つけました:
Silverlightデバッガが.Webプロジェクトでアクティブになっていることを確認してください。プロジェクトのプロパティを開き、[Web]タブでSilverlightデバッガを選択します。
Visual Studioを再起動して、binフォルダとobjフォルダをすべて削除します。
しかし、これらのどれも私のために働きませんでした 。それから誰かがブラウザとしてIEを代わりに使用することを試みるためにずっとずっとスレッドについて言及しました。これにより、デバッグとブレークポイントが再び機能するようになりました。
編集する
後に私はIE9が動かないのに苦労しました、なぜならそれは間違ったプロセスにくっついているからです。毎回手動で正しいIEプロセスにアタッチするのではなく、きちんとした トリック :を見つけました。
これで、Visual Studioは.Webプロジェクトの実行時にIEを起動し、正しいプロセスにアタッチします。それはそれをするべきです。
この特定のエラーが発生するたびに、Visual Studioがアセンブリをロードしているフォルダは、Webアプリケーションが実行されているフォルダとは異なることがわかりました。
つまり、アプリケーションサーバーは次の場所からアプリケーションを実行しています。
C:\dev\MyApplication\bin
しかしVisual Studioはからデバッグしています
C:\dev\MyOtherApplication\bin (or something along those lines, anyway).
注 - さまざまな理由から、私はほとんどの人が使用している変わったスタンドアロンギズモではなく、アプリケーションホストとしてIISを使用してデバッグを行います。これは私の答えの有用性に影響を与えます。
更新 :
IISの場合、アプリケーションサーバーのディレクトリ(つまり上記のC:\dev\MyApplication
)はWebアプリケーション用に設定された 物理ディレクトリ です。これはアプリの基本設定を変更することで制御できます。
Visual Studioの場合、デバッグ用ディレクトリ(上記のC:\dev\MyOtherApplication
)は、svc
ファイルがあるディレクトリです。通常、csproj
プロジェクトファイルと同じディレクトリです。
私にとっての問題は、[デバッグ]設定で[プロパティ] - > [ビルド] - > [コードの最適化]チェックボックスがオンになっていたことです。それをオフにし、再構築し、そしてデバッグは通常通りに働いた。
あなたが直面した理由は、PDB( "PDBはProgram Databaseの略で、プログラムに関するデバッグ情報を格納するための(マイクロソフトが開発した)独自のファイルフォーマットです)が最新ではないということです。 :
1 - Bevanが言ったように、あなたは他のアプリケーションをデバッグしているかもしれません!
2-あなたは同じアプリケーションの別のバージョンをデバッグしています。たとえば、以前にビルドしたアプリケーションを、(再)ビルドせずに、デバッグ用のコードの現在のバージョンに添付したとします。
ソリューションをクリーニングまたは再構築すると、このような問題が解決します。
問題があなたのものではないことを確認するために、VS 2008で同じアプリケーションをデバッグしてみてください(私はそれがVS 2010のバグかもしれません - それはまだベータ版です!).
私は同じ問題を抱えていました、私は自分のプロジェクトをデバッグしていました、そして私はプロジェクトを右クリックして "new debug instance"を選択しなければなりませんでした。私は一度だけこれをする必要がありました、そしてその後、それは通常どおりに働いた。
このエラーは私には時々起こりますし、関係するアセンブリのプロジェクト設定にいつでも戻ることができます。どのアセンブリにシンボルがロードされているかを知るために、コードがブレークポイントを尊重しないか、ブレークポイントを設定するまで「待つ」必要はありません。
プロジェクトをデバッグモードで実行すると、以下のようにシンボルがロードされているアセンブリが[出力]ウィンドウに表示されます(新しいタブで画像を開く必要があるかもしれません)。
したがって、この場合BASD.Core.Data.dllにはシンボルがロードされていません。そのため、このアセンブリのプロジェクト設定と、シンボルを読み込まないようにした別のアセンブリのプロジェクト設定とを比較して、シンボルが読み込まれるものと読み込まれないものがあることがわかります。
しかし、「私のために」、「毎回」これが起こるのは、デバッグ情報が作成されていないためです。だから私は(C#)プロジェクトでプロジェクトのプロパティ>ビルド>詳細設定を開きます。
そのため、上記のBasd.Core.Data.dll、つまりシンボルなしの場合、高度なビルド設定は次のようになりました。
Basd.Core.Configuration.dll、つまりブレークポイントを設定してヒットできるアセンブリでは、設定は次のとおりです。
だから私は後者のプロジェクトではなく、最初のプロジェクトでデバッグ情報を出力しているので、Basd.Core.Configuration.dllでブレークポイントを打つ私の能力
また、特定の.dllのプロジェクトのbinフォルダーに.pdbファイルを置くだけでは十分ではないことにも注意してください。これは古すぎる可能性があり、そのため.dllの有効なシンボルファイルとしてVisual Studioによって取得されないためです。あなたが通り抜けようとしています。
また、ビルド構成を変更すると、ビルド情報の設定やシンボルの取得先が変わる可能性があることにも注意してください。
(この場合、リリースモードになっていますが、この方法は適用されます)
ジャンププロジェクトプロパティ - >ビルド - >詳細...
[出力]セクションで、[デバッグ情報]ドロップダウンから[完全]を選択します。
プログラムをリリースモードではなく、デバッグモードで実行していることを確認してください。
デプロイSilverlightアプリケーション に従ってこの問題を解決しました。 (この答えは他のものと重複していますが、もっと徹底的に説明します。)
問題は、Silverlightアプリケーションがビルド/起動時にWebアプリケーションに正しくデプロイされていないことです。これは参照問題です - 理解するのは簡単ですが、初めて遭遇したときには明白ではありません。
他のプロジェクト参照と同じように、デバッグするには、 referenced projectの出力を referencing projectのbinフォルダーにコピーする必要があります。クラスライブラリの場合、これは右クリックして[参照の追加]を選択すると発生します。 Silverlightの場合は、プロジェクトプロパティを介して参照を追加する必要があります。
これにより、ホスティングWebアプリケーションからSilverlightアプリケーションへの参照が追加され、ビルドまたはデプロイ時にxap
ファイルがWebアプリケーションに確実にコピーされるようになります。つまり、現在のSilverlightアプリとそのデバッグファイルはデバッグ対象のアプリケーション内にあり、コードをステップスルーすることができます。
Webプロジェクトをデバッグしている場合は、web.configファイルでdebug = "true"属性が設定されていることを確認してください。
<system.web>
<compilation debug="true" .../>
Windows 7でも同じ問題が発生し、すべて:DLLのクリーンアップ、モジュールのリストの調査、「Just My Code」の無効化などを試みました。
「管理者として」Visual Studioを実行した後、問題は解決しました。正直に。 Microsoftがnotが「管理者として」実行されていることを警告できないのはなぜですか?数時間の作業が節約できます。
私にとっての問題は、プロジェクトの設定の[ビルド]タブで[コードの最適化]を有効にしたことです。
同じ問題を抱えていた
何らかの理由で、DLLの1つがGACに登録されたため、コードとは異なるバージョンが常に存在していました。
GACから削除したら、問題は解決しました
Visual Studio 2010ではなくVisual Studio 2008を使用していて、このエラーが発生している読者のために。上記の答えはこの状況で私を助けてくれなかったので、私は私の経験を共有しています。
デバッグにASP.NET開発サーバーを使用するのではなく、w3wp.exeプロセスにアタッチすることによって、Visual Studio 2008でIIS Webアプリケーションをデバッグする場合は、これが問題になる可能性があります。
Visual Studioは、古い[IISプロセスからのDLLからシンボルファイル(デバッグ中に使用されるファイル)をまだ参照している可能性があります。そのシンボルファイルは.NETソースコードの再コンパイルによって再作成されていますが、IISプロセスはまだ古いシンボルファイルを参照しています。
修正するには:
Visual Studioでデバッグを停止し、Webアプリケーションを再起動して、プロセスに再度アタッチするだけです。その後、ブレークポイントは黄色(このエラーが表示されたとき)から再び赤色に変わります。
========================
その他に試すべきこと(今日新しい状況が見つかりました):
下のリンクにあるそれぞれの箇条書きを1回AT 1回実行しますが、試してみるたびに以下の手順を繰り返してください。
1.)Visual Studioでデバッグを停止します(赤い四角のアイコンを押します)
2。)きれいな溶液
3。)ソリューションを構築する
4。) [ここに命令の挿入]
5)Tools> Attach to Process(またはデバッグから始めます)
6。)アタッチしているプログラムを起動し、あなたのコードがヒットするように実行します
Nunit.exeに接続している場合は、NUnitを開いてテストを実行し、ブレークポイントに到達するようにします。
W3wp.exe(IISサイト)に接続している場合は、ブラウザでサイトを開き、ブレークポイントに達するページに移動します。
今日、私はあなたがスタートアッププロジェクトとして設定されていないプロジェクトでデバッグしようとすると、それがこれを示すことに気付きました。あなたがあなたのw3wp.exeプロセスにアタッチするとき、それはスタートアッププロジェクトとして設定されているプロジェクトでそのデバッグを考えます。解決するには、Webアプリケーションプロジェクトを右クリックして[スタートアッププロジェクトに設定]を選択します。それからあなたのプロセスに再接続してみてください。
シナリオはこれです:特定のプロジェクトはあなたのスタートアッププロジェクトです(例えばMainメソッドを持っています)。そのプロジェクトは、ソリューション内の他のプロジェクトを参照しています。他のプロジェクトのブレークポイントは打撃を受けていません。
素早い解決策:ソリューションをビルドするときには、ビルド出力パス(通常はbin\Debug)でスタートアッププロジェクトを探します。参照しているプロジェクトのDLLおよびPDBファイルを見てください。最後の修正日が、最後にソリューションを構築した日であることを確認してください。そうでない場合は、それらを各プロジェクトのビルド出力パスからスタートアッププロジェクトのビルド出力パスにコピーします。例えば:
プロジェクトAにはメインがあります。プロジェクトBを参照しています。プロジェクトBのブレークポイントはヒットしていません。プロジェクトBのビルド出力パスからDLLおよびPDBファイルをプロジェクトAのビルド出力パスにコピーします。それからあなたの解決を動かしなさい。ブレークポイントがヒットします。
ここで、プロジェクトAがプロジェクトBのDLLおよびPDBファイルをコピーしていない理由を理解する必要があります。ここでの答えはほとんどのシナリオを網羅しています。触れられていないシナリオの1つは、プロジェクトとソリューションがTFSに正しくバインドされていることを確認することです。いくつかのプロジェクトをバインドしましたが、いくつかは正しくバインドしていません。それは私にとって問題を引き起こしました。それを修正すると、問題は解決し、DLLファイルとPDBファイルをコピーする必要がなくなりました。
私の場合と同じ問題に対する解決策は、以下のステップの組み合わせです。
Web.configでこの問題を修正するには、debug="true"
を追加する必要がありました。
<system.web>
<compilation targetFramework="4.0" debug="true">
このソリューションを見つけるのに役立ったのは、デバッグ中にModulesウィンドウを見て、ロードされたASP.NET DLLが持っていたことがわかりました:Binaryはビルドされていませんデバッグ情報
私は同じ問題を抱えていたが、WebアプリのVS2013で。私にとって、答えはソリューションのビルド構成を更新することでした -
これを実行すると、すべてのブレークポイントが機能し始めました。
私は.pdb
フォルダー内のobj\debug
ファイルの名前を変更しようとしましたそしてきれいな解決策をしてそして再構築しました。
新しい.pdb
ファイルが作成され、ブレークポイントを正しくヒットすることができました。
ブラウザからWebアプリケーションのURLを開き、VS.Net IDE [ツール] - > [AttachtoProcess]を使用します。
次にaspnet_wp.exeに接続します。
デバッガが起動します
さて - ここで私たちは行きます:
( "silverlightアプリ"の場合:最初にsilverlightがあなたのサーバープロジェクトの "properties"の中の "web"でチェックされていることを確認してください - それでも解決しない場合は、以下を試してください)
初めて実行する場合:最初にこれを実行します。devenv.exe/ResetSettingsおよび1:トップメニューでデバッグタグをクリックします2:オプションと設定をクリックします3:「デバッグ」と「一般」の下で「.net framework source stepping」 4:ボックスにチェックを入れます。 5:そしてすべてのシンボルがダウンロードされ再設定されます:)
上記の問題が解決したら、シンボルがあるフォルダをクリアしてください。
1:トップメニューでデバッグタグをクリックします2:オプションと設定をクリックします3: "デバッグ"と "シンボル"の下にあるボタン "空のシンボルキャッシュ"を見つけてクリックします.
私のWPFアプリでは、アプリケーションフォルダを削除し、ソース管理から「最新にする」をもう一度実行して、再構築しました。すべてのブレイクポイントは現在うまく機能しています。
私は同じ問題を抱えていた - デバッグをVisual Studioで動かそうとするのに多くの時間を失った。
それはNugetになった - 私は(7つのC#プロジェクトにわたって)Newtonsoft.Jsonの3つのバージョンを持っていた。解決策はコンパイルされますが、デバッグできませんでした。
Nugetのパッケージマネージャコンソールで以下を実行することで問題を解決しました。
PM>アップデートパッケージNewtonsoft.Json
レジストリから.dllのすべてのインスタンスを手動でアンインストールし、ローカルドライブから.dllのすべてのインスタンスを手動でアンインストールする必要がありました。私のアプリをアンインストール/再インストールし、ブレークポイントを叩いています!これをして半日浪費した:(。
役に立つかもしれないもう一つの逸話 -
私のプロジェクトの1つが、Release出力フォルダーからのファイル参照を使用していたときに、この問題が発生しました。ビルド結果がGoodsフォルダに配置されたとき、これらのRelease dllはDebug dllを上書きしていました。
解決策はcsprojファイルで確認することでした、私の参照のHintPathは
<HintPath>..\..\Core\Goods\$(Configuration)\MyFramework.dll</HintPath>
ではなく
<HintPath>..\..\Core\Goods\Release\MyFramework.dll</HintPath>
ブレークポイントに到達していない場合は、.xapファイルを削除してください。 YourProject.Web/ClientBin内にYourProject.xapを削除します。私は上記のすべてを試してみて、この修正に出会い、毎回うまくいきます。同様に削除した後にプロジェクトをきれいにするのが賢明です。
Silverlightアプリケーションプロジェクトをスタートアッププロジェクトとして設定してみます。プロジェクトを右クリックし、[スタートアッププロジェクトとして設定]をクリックします。次にF5を押して、ブレークポイントをキャッチできるかどうかを確認してください。
Silverlightアプリケーションに変更を加えるたびに、ブラウザのブラウズデータや一時データを削除してみてください。
私は同じ問題を抱えていました。以下は私のために働いた
web application --> Properties --> Silverlight Applications
に行く
リストにSilverlightアプリケーションが表示されていない場合は、[追加]をクリックし、[プロジェクト]ドロップダウンからSilverlightアプリケーションを選択して追加します。
VS 2008を使用していますが、このエラーが発生しました。私はここでそして他のウェブサイトで提案された他のすべてを試したが何もうまくいかなかった。
解決策は非常に単純で、このページには他に2つの解決策があり、それらを使って正しい分野に取り組むことができました。
[プロジェクト]メニューに移動して[プロパティ]をクリックします(ソリューションエクスプローラでプロジェクト名を右クリックして[プロパティ]を選択することもできます)。
左側の「コンパイル」タブを選択します。
"Build output path:"テキストボックスに、 "bin \"があることを確認してください。
私の状況では、ネットワーク上の別のbinフォルダを指していたため、ブレークポイントが失敗しました。プロジェクトの現在のBinフォルダを調べてください。
私がこの問題を抱えていたのは、各アプリケーションソリューションについて、ほとんどの共有アセンブリを "References"フォルダにコピーした後、 "Solution items"として追加した場合です。ソリューション内で "プロジェクト"として_ " と を使用します。
理由はわかりませんが、アセンブリの[参照設定]で正しいフルパスが指定されていても、デバッグ可能なものもあれば、そうでないものもありました。
この予測不可能な振る舞いは私を怒らせました:)
私はこれを解決するために、ソースコードを含むプロジェクトがある "References"フォルダからすべてのアセンブリを削除し、共有アセンブリのバージョン情報を非常によく追跡していました。
どうしてもこれを答えではないとマークしてしまうのですが、私にとってブレークポイントが打たれていないというこの問題は解決しました。一時ファイルの削除、再起動、再インストール、デバッグ設定の無効化など、何時間も経過した後、突然動作し始めました。まったく理由もなく、私たちがブレークポイントを迎えたとき、私は狂気の危機に瀕していました。矛盾するバグが大好きです、私。
私は自分の問題がばかげていることを除いて同様の問題を抱えていた - 私は2つの異なるポートの下で動いている内蔵Webサーバーの2つのインスタンスを持ってWebアプリは実際にはそのポートの下で実行されていませんでした。そのため私のブラウザは1539を参照していた "Start URL"にリダイレクトされていましたが、コード/デバッグインスタンスはポート50803で実行されていました。
内蔵Webサーバーを固定ポートで実行するように変更し、そのポートを使用するように「開始URL」を調整しました。プロジェクト - >プロパティ - > Web - > "サーバー"セクション - > "Visual Studio開発サーバーの使用" - >特定のポート
Silverlight xapをホストしているWeb(Asp.Net)プロジェクトのWebプロパティを確認してください。 Webプロジェクトに移動します。silverlight xapのホスティング - >プロパティ - > Web - >デバッガセクション - > silverlightチェックボックスがオンになっていることを確認します。
私はたくさんのことを試しました。私にとってうまくいったことプロジェクトを右クリックして、Silverlightアプリを「スタートアッププロジェクトとして設定」にしました。それから私はそれを実行しようとしました(それは明らかに実行されていなかったWebサーバーにRIAサービスに頼っていたので失敗しました)そしてそれからスタートアッププロジェクトとしてWebプロジェクトをリセットします。
考えられるシナリオの1つは、ASPプロジェクトが(DLLではなく)アプリケーション内のコードを参照している場合、シンボルはロードされないことです。
コードをデバッグしている間、参照されているアプリケーションを一時的にクラスライブラリに変更する必要がありました。
Silverlightプロジェクトで問題が発生している場合、解決策はかなり簡単です。私の経験によると、多くの場合、新しい ".xap"ファイルが一時フォルダ(内部VS CassiniまたはIIS Express)に展開されていないため、デバッグシンボルは読み込まれません。この状況では、完全な再構築やVS設定のリセットは役に立ちません。最も簡単な解決策は、ブラウザ内のインターネット一時ファイルを削除することです。 Silverlightの開発とテストにIEを使用している場合は、今後このような問題が発生しないようにするために[終了時に閲覧履歴を削除]オプションをオンにすることをお勧めします。
これは、デバッグがアプリケーションによって無効にされている場合によく発生する問題であり、web.config上に複数の変換がある場合によく発生します。あるトランスフォームを別のトランスフォームにテストすることから、特定の時点で中断することができなくなることはよくあります。
これはとても便利なスレッドで、この有害な問題を解決するためのチェックリストです。私にとってうまくいったのは、IEへの交換でした。すでにIEを使用していたので、プロジェクトのWebプロパティを設定して、開始アクションが外部プログラムを開始することであることに気付くまでにはしばらく時間がかかりました。
C:¥Program Files(x86)¥Internet Explorer¥iexplore.exe
コマンドライン引数を使って
http:// localhost/MyProject -private
作業しているswfのIEのキャッシュを停止するには、-privateフラグが必要でした。 '外部プログラムの開始'から '特定のページ'に戻ると、 'シンボルがロードされていない'問題が解決しました。
この回答は、Silverlightとは特に関係ありませんが、一般的なエラーです:ブレークポイントは現在ヒットしません。この文書のシンボルはロードされていません。このプロジェクトがConfiguration Managerでデバッグとして設定されていないというのは、間違いではありません。チェックする価値がある
最も簡単な方法は、実際には1つのクラスライブラリを含む複数プロジェクトソリューションで、そのクラスライブラリプロジェクトによって作成された.dllファイルに問題がありました。どういうわけか、私は別にそのプロジェクトをビルドしてそれの出力.dllを参照し、そして今ブレークポイントは機能しています
よくわからないが、多分これはあなたを助けます。もしそうでなければ、それは私のために働いたという理由だけで私のような新しい人:)
このエラーは、最新の実行可能ファイルをデバッグしていない場合、リモートデバッグ時にも発生する可能性があります。あなたがリモートデバッグをしているときは、ローカルのdevマシンを(再)ビルドした後に新しいコードをリモートマシンに移動することを忘れないでください。
IISに接続してデバッグします。私はいくつかの新しい設定について本番用web.configを入手し、デバッグを有効にするためにweb.configを更新するのを忘れました。
要素のデバッグ設定がtrueになっていることを確認してください。言い換えると:
<compilation defaultLanguage="c#" debug="true" targetFramework="4.0">
私がこの問題を解決するために私のブレークポイントが当たらなかったページにあった、私はフォルダーを選択しました>既存の項目を追加しそれからその保存パスから項目を選択します。これにより、ブレークポイントが機能し始めました。
私はこの問題を抱えていましたが、私の場合はデバッグしようとしていたモジュールのロードが遅れていたためです。メインプロジェクトにリンクされているDLLがあり、DLLはデバッグ中のものです。 DLLはメインアプリケーションの特定の関数が呼び出されたときにのみ呼び出されたため、VS2010はそれらの関数が呼び出されるまでモジュールをロードしませんでした。
プロジェクトを開始したときにこのメッセージを受け取りましたが、関数を実行するまでにデバッガはモジュールと関連するデバッグ情報をロードしました。
このスレッドは私に大いに役立ちました: http://geekswithblogs.net/dbutscher/archive/2007/06/26/113472.aspx