銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

Open for PowerShell Cmdlet v1.1 をリリースしました

visualstudiogallery.msdn.microsoft.com

すでにインストールしている方はアップデートがかかるはずです。

v1.0ではモジュールをImportした状態でPowerShell Consoleが開きましたが、v1.1ではこのConsoleのプロセスにアタッチしてデバッグ可能になりました。

f:id:tanaka733:20150320010433p:plain

ちなみにコードとしてはこんな感じで数行でかけてしまいました。

//PowerShell Consoleのプロセスを起動
var p = new System.Diagnostics.Process
{
    StartInfo = new ProcessStartInfo
    {
        FileName = @"C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe",
        WorkingDirectory = dir,
        Arguments = $"-NoExit -Command \"& {{Import-Module '{outputPath}'}}\""
    }
};
p.Start();

//デバッガーがアタッチできるローカルのプロセス一覧の中から、起動したPowerShell ConsoleのプロセスIdと一致するものを取得
var dteProcess = DTE.Debugger.LocalProcesses.Cast<EnvDTE.Process>().FirstOrDefault(prop => prop.ProcessID == p.Id);

if (dteProcess != null)
{
    //該当のプロセスにアタッチ
    dteProcess.Attach();
    DTE.Debugger.CurrentProcess = dteProcess;
}

引き続き機能要望などお待ちしております。

github.com