【发布时间】:2015-09-27 14:48:42
【问题描述】:
虽然在 C# 中使用 System.Management.Automation 命名空间,但我有运行 powershell 脚本的代码,类似于下面的代码。
using (mPowershell = PowerShell.Create())
{
mPowershell.AddScript(GetScriptText(mStep), true);
SetPowershellVariables(mPowershell);
output = new PSDataCollection<PSObject>();
output.DataAdded += new EventHandler<DataAddedEventArgs>(Output_DataAdded);
mPowershell.InvocationStateChanged += new EventHandler<PSInvocationStateChangedEventArgs>(Powershell_InvocationStateChanged);
IAsyncResult asyncResult = mPowershell.BeginInvoke<PSObject, PSObject>(null, output);
}
正如预期的那样,我遇到了错误,我想调试它们。
有没有办法,无需进入 powershell 脚本并每 2 行放置一个 Write-Host $somevariable,来逐步调试此脚本?
我应该提到脚本本身不能独立运行,C# 代码将变量添加到脚本的运行空间。
【问题讨论】:
-
也许使用调试器“附加到进程”可能是一种方法......但不确定调试器是否以及如何找到脚本的源代码......也许是 DebugBreak().. .某处?
-
不是 C# 向脚本中添加变量,而是让那些东西成为脚本参数;那么你就可以独立使用脚本了。
标签: c# powershell