如何使用Powershell的IDE调试Powershell中的c#代码

本文关键字:Powershell 中的 调试 代码 IDE 何使用 | 更新日期: 2023-09-27 18:17:51

如何在powershell中逐行调试源代码?

我在powershell中使用c#代码,像下面的例子:

$Assem = (
    “Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” ,
    “Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”
    )
$Source = @”
using Microsoft.SharePoint.Publishing.Administration;
using System;
namespace StefanG.Tools
{
    public static class CDRemoteTimeout 
    {
        public static void Get()
        {
            ContentDeploymentConfiguration cdconfig = ContentDeploymentConfiguration.GetInstance();
            Console.WriteLine(“Remote Timeout: “+cdconfig.RemoteTimeout);
        } 
        public static void Set(int seconds)
        {
            ContentDeploymentConfiguration cdconfig = ContentDeploymentConfiguration.GetInstance();
            cdconfig.RemoteTimeout = seconds;
            cdconfig.Update();
        }
    }
}
“@
Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp 
[StefanG.Tools.CDRemoteTimeout]::Get()
[StefanG.Tools.CDRemoteTimeout]::Set(600)

,当我开始调试powershell时,我看不到源代码中发生的任何事情。我使用powershell_ise。如果有人可以给我好的powershell IDE调试它很容易。谢谢你的帮助。

$source是一个字符串,因为调试器只在import source的第一行调试add-type。

如何使用Powershell的IDE调试Powershell中的c#代码

  1. 在你想调试的方法中设置一个断点
  2. 构建项目。
  3. 打开一个新的PowerShell窗口。
  4. 在Visual Studio中,从Debug菜单中选择"Attach to Process"。
  5. 选择PowerShell.exe进程,单击"附加"。调试器现在已经启动,作为附加到您打开的PowerShell窗口。
  6. 在PowerShell窗口中,导入你的模块并运行你的PowerShell Cmdlet。当你的代码遇到断点时,它会让你在Visual Studio调试器中逐步通过它,就像任何其他Visual Studio解决方案一样。

引用http://www.johnchapman.net/technology/coding/powershell-debug-custom-csharp-powershell-cmdlet/

                   (OR)

您可以简单地安装powershell编辑器在powershell窗口进行调试http://dalexandrov.github.io/PowershellEditor/