Visual Studio 2010スクリプトデバッガーが機能しない
-
06-07-2019 - |
質問
VS 2010 Beta 2をインストールしたばかりで、ASP.NET MVC 2プロジェクトでプレイしたかった。スクリプト( alert( 'hello');
)をHomeコントローラーのindex.aspxビューに追加するだけで、実行を確認できます。ただし、ブレークポイントを設定しようとすると、ヒットしません。また、「デバッガ」を使用しようとしました。キーワードを使用すると、残念ながら「現在の場所に使用できるソースコードがありません」というメッセージが表示されます。メッセージ。また、アプリが実行されているIEプロセスに個別にアタッチしようとすると、このメッセージが表示されます。
わかりやすいスクリプトデバッグエクスペリエンスを得るには、何をする必要がありますか? (Firebugを使用してこれをデバッグすることに成功しましたが、何らかの理由でVSデバッガーを好みます。)
ここに私の設定の詳細があります:
- VS 2010 Beta 2で製品をリリースしています
- IE8バージョン8.0.7600.16385はデフォルトのブラウザです。
- "スクリプトのデバッグを無効にする(Internet Explorer)"詳細オプションはオフです。
- 「スクリプトのデバッグを無効にする(その他)」オプションはオフです。
- ASP.NET MVC 2プロジェクトの" web" [プロパティ]タブで、ASP.NETデバッガーがチェックされます。その他はすべてチェックされていません。
- Visual Studio 2008スクリプトのデバッグは正常に機能しているようです。
解決
Silverlightデバッガーが選択されている場合、デバッガーはSilverlightコードとスクリプトコードの両方を同時にデバッグできません。JavaScriptデバッグはオフになっています。
- プロジェクトのプロパティに移動します(Alt + Enter)。
- Webサイトプロジェクトの場合:[開始オプション]を選択します。または、Webアプリケーションの場合:[Web]タブに移動すると、下部に[デバッガー]オプションが表示されます。
- JavaScriptをデバッグできるようにする場合は、Silverlightチェックボックスが選択されていないことを確認します。 (残念ながら、このUIがこの副作用について明確でないのは残念です。)
他のヒント
私は同じ問題を抱えていました。スクリプトタグ内に設定されたブレークポイントでIDEをブレークすることさえできませんでした。ただし、" debugger;"を追加すると、スクリプトタグの最初の行はIDEに応答させることができましたが、それからは、分解が不可能だったとしか言えませんでした。
ただし、「step into」などのデバッグツールをクリックすることはできました。および「ステップオーバー」。これを行うと、IDEは私が使用している外部スクリプト(JQueryおよびGoogle Maps)のいくつかに進みました。そこで、JavaScriptコードブロックをビューから取り出し、「コンテンツ」内の別の.jsファイルに入れました。フォルダ。次に、この新しい.jsファイルを参照するスクリプトタグを追加しました(url =" /Content/Test.js")。
それはうまくいきました...この努力をしなければならないことは少し面倒ですが、JavaScriptがビューに直接含まれていないことについて何か言いたいことがあるかもしれません。これが彼らが修正しようとしているバグであることを願っています。
IEでデバッグすると、VSは「Script Documents」というフォルダーをソリューションエクスプローラーに追加するようです。このフォルダー内には「Windows Internet Explorer」と呼ばれる別のフォルダーがあり、その中にはロードされたすべてのjsスクリプトとIEで現在表示されている(コンパイルされた)HTMLファイルがあります。このHTMLファイルのスクリプトタグにブレークポイントを設定すると、うまくいきます。
これを解決するには、プロジェクトのプロパティに移動し、「開始オプション」を選択します。次に、[ネイティブコード]チェックボックスをオンにします。両方のオプションが一緒に機能しないため、Silverlightチェックボックスをオフにします。
CTRL + Alt + P(プロセスにアタッチ)、IEを選択、デバッグタイプとして「スクリプト」を選択。
前述のように、ライアンはスクリプトをScriptsフォルダーの下の別のファイルに移動しました。 また、スクリプト名にデバッグを追加して、MyTestScript。 debug .jsになりました。スクリプトタグを介してスクリプトをインクルードし、デバッガーがヒットするスクリプトファイルにブレークポイントを設定できました。
Google ChromeのデベロッパーツールがJavaScriptを完全に表示することがわかりました。私の場合、通常、jQueryのgetScript関数を使用してスクリプトを読み込みます。通常、コードの実行は、ページの読み込み時またはイベントの処理時にjQueryコールバックを使用します。 Visual Studio 2010では、「ソースがありません」という問題に頻繁に遭遇しました。バグ。悲しいことに、Visual Studioプロジェクトの一部であるJavaScriptをデバッグするにはChromeが必要です。
別のjsファイルを使用すると、欠点があります。たとえば、MVCヘルパーは使用できません。 Microsoftは本当にこれを理解する必要があります。
Intellisenseは、次のような参照コメントを含めても、ビューのスクリプトブロックで正しく機能しません。
/// <reference path="/Scripts/jquery-1.6-vsdoc.js" />
/// <reference path="/Scripts/jquery-1.6.js" />
IntelliSenseは、このアプローチでもjsファイルで問題なく動作します。