You need to enable JavaScript to run this app. 如何在.NET 4.7.2 WinForms项目嵌入PowerShell及.NET 5依赖包选型
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET 4.7.2 WinForms项目嵌入PowerShell及.NET 5依赖包选型

两种.NET环境集成PowerShell能力的依赖包及实现方案

.NET Framework 4.7.2 Windows Forms项目解决方案

你遇到的类型找不到问题,是因为安装了不兼容.NET Framework的高版本System.Management.Automation包,正确操作如下:

  • 先卸载已安装的所有System.Management.Automation相关NuGet包
  • 安装官方适配包 Microsoft.PowerShell.5.1.ReferenceAssemblies,该包对应Windows系统内置的PowerShell 5.1版本,专门兼容.NET Framework 4.x系列
  • 安装完成后,在代码中引用using System.Management.Automation;即可正常使用Runspace、PowerShell等核心类型

简单执行示例:

using (PowerShell powerShell = PowerShell.Create())
{
    // 添加要执行的PowerShell脚本
    powerShell.AddScript("Get-ChildItem C:\\");
    // 执行并获取返回结果
    var executeResult = powerShell.Invoke();
    // 遍历处理结果
    foreach (var item in executeResult)
    {
        Console.WriteLine(item.BaseObject.ToString());
    }
}

注意:该方案依赖系统内置的PowerShell 5.1,Win10/11、Windows Server 2016及以上版本系统默认已预装,无需额外安装。

.NET 5 控制台项目解决方案

.NET 5属于跨平台.NET体系,对应使用PowerShell 7+的官方SDK,操作如下:

  • 安装NuGet包 Microsoft.PowerShell.SDK,优先选择稳定版本即可,如7.2.x、7.3.x系列
  • 安装完成后同样引用System.Management.Automation命名空间,核心API用法和.NET Framework场景基本一致,代码复用率很高

注意:该包为自包含依赖,发布时会自动携带相关运行时,无需目标机器提前安装PowerShell 7。

内容的提问来源于stack exchange,提问作者BuddyJoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 02:15:02