0

問題 (nuget PowerShell から):

  • IIS Express を起動します (Web サイトはフォルダーにあります) [完了]
  • URL に対して IE9 を起動する [完了]
  • 現在の VisualStudio インスタンスを IIS にアタッチして .net コードをデバッグする [完了]
  • 現在の VisualStudio インスタンスを IE9 にアタッチして Javascript コードをデバッグする [問題]

状態:

現在、PowerShell ($DTE オブジェクトを使用) から VS を IIS および IE9 タブ プロセスにアタッチできます。ただし、JavaScript コードをデバッグすることはできません (VS はデフォルトで .net コードのみをデバッグし、スクリプトはデバッグしないと思います)。

EnvDTE80.Transport を見ましたが、nuget PowerShell 内で使用する方法がわかりません。jsをデバッグするアイデアはありますか? または、問題に対するまったく異なるアプローチですか?

更新 (8 月 8 日): IE9 デバッグ js にアタッチできますが、問題がまったく異なることがわかりました。

  • PowerShell で IIS Express を実行しています
  • PowershellでIE9を実行しています
  • 「プロセス」オブジェクトを取得できます

しかし、デバッガーをプロセスにアタッチするのが早すぎて、デバッグが機能しません。

  • (すなわち) IIS Express を開始し、IE9 を開始し、最初に IIS に接続し、次に IE9 に接続しようとしました。スクリプトをデバッグできるようになりましたが、IIS Express をデバッグすることはできません。
  • DTE をプロセスにアタッチする前にスクリプトを 5 秒間 (Start-Sleep -s 5) 停止しようとしましたが、IE js と IIS の両方をデバッグできるようになりました。しかし、私はスリープソリューションが好きではありません (何秒?)。
4

2 に答える 2

1

私は VS オブジェクト モデルを介してこれを行っていませんが、IE9 のような実行中のプロセスにアタッチするときに GUI を介して、必要なデバッガーの種類を選択できます。この場合、「スクリプト」デバッガーが必要です。これが GUI で実行できる場合は、オブジェクト モデルを介して実行できるのではないかと思います。VS のマクロ レコーダーは、このようなことを理解するのに適しています。GUIを介して接続する手順を実行しているときにオンにすると、次のようになりました。

Sub TemporaryMacro()
    Try
        Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
        Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
        Dim dbgeng(1) As EnvDTE80.Engine
        dbgeng(0) = trans.Engines.Item("Script")
        Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, "HILLR1").Item("iexplore.exe")
        proc2.Attach2(dbgeng)
    Catch ex As System.Exception
        MsgBox(ex.Message)
    End Try

End Sub
于 2012-07-27T17:16:35.380 に答える
0

firebug を使用して、Firefox で Javascript をデバッグします。Chromeには同等のものがあります。IE で試したことはありませんが、IE 用の Firebug バージョンがあると思います。

この質問を確認してください: Internet Explorer の Firebug と同等

于 2012-07-27T17:20:59.293 に答える