Windows 7 64 ビット Professional で Visual Studio 2010 を使用しています。カスタム PowerShell コマンドレットのデバッグに問題があります。
構成
- 言語: C#、.NET Framework 3.5 SP1 を対象。
- プラットフォーム ターゲット: 任意の CPU
- アクションの開始:
C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
- コマンドライン引数:
-noexit -command Add-PSSnapIn MyCustomSnapIn
問題 1: F5 を押しても接続に失敗する (デバッグ → デバッグ開始)
- PowerShell が開き、タスク マネージャーに、powershell.exe が 64 ビット プロセスとして実行されていることが示されます。[イメージ パス名] 列には、開始アクションで指定されたものと同じ実行可能ファイルが表示されます。
- Visual Studio で [Debug] → [Break All] を選択すると、「Unable to break execution. This process is not running the type of code that you selected to debug.」というメッセージが表示されます。
問題 2: Ctrl+F5 (デバッグ → デバッグなしで開始) を押すと、予期せず 32 ビット プロセスとして起動する
- PowerShell が開きます。タスク マネージャーは、powershell.exe が 32 ビット プロセスとして実行されていることを示します。今回は、イメージ パス名に SysWOW64 リダイレクトが表示されます。
現在のデバッグの面倒な方法:コマンドレットをデバッグする唯一の方法は、F5 キーを押し、[デバッグ] → [すべてデタッチ] を選択し、[デバッグ] → [プロセスにアタッチ] を選択して、Visual Studio を再アタッチすることです。