You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C# WinForms中运行PowerShell脚本遇自动化命名空间缺失,如何引用?

解决.NET 4.8 WinForms中PowerShell自动化命名空间缺失问题

问题原因

Microsoft.PowerShell.SDK NuGet包主要面向.NET Core/.NET 5+平台,在.NET Framework 4.8环境下兼容性不佳,这是安装后仍找不到自动化命名空间的核心原因。

正确解决方案

1. 卸载现有不兼容包

在NuGet包管理器控制台执行:

PM> Uninstall-Package Microsoft.PowerShell.SDK

2. 安装.NET Framework适配的PowerShell包

安装专门为.NET Framework设计的引用包:

PM> Install-Package Microsoft.PowerShell.5.1.ReferenceAssemblies

3. 确认命名空间引用

保留你原本的命名空间引用即可:

using System.Management.Automation;
using System.Management.Automation.Runspaces;

4. 验证可用性

此时可正常使用PowerShell自动化相关功能,示例代码如下:

// 创建Runspace并执行脚本
using (var runspace = RunspaceFactory.CreateRunspace())
{
    runspace.Open();
    using (var pipeline = runspace.CreatePipeline("Get-ChildItem"))
    {
        var results = pipeline.Invoke();
        // 处理执行结果
    }
}

额外注意事项

  • 确认项目目标框架为.NET Framework 4.8
  • 清理项目后重新生成(菜单:生成→清理解决方案,再生成解决方案)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 16:39:50