System.Management.Automation.RunspaceInvoke 是否有 .NET Core 替代品?

Is there a .NET Core alternative to System.Management.Automation.RunspaceInvoke?

我目前正在将一个库从 .NET Framework 移植到 .NET Core。该库的框架版本使用了 Powershell 中的一些运行空间,我对此不是很熟悉(为了这个问题,抛开在 Core 中使用 Powershell 的优点)。相关代码如下

using System.Management.Automation;
using System.Management.Automation.Runspaces;
...
            RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();

            using (Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration))
            {
                runspace.Open();
                using (RunspaceInvoke invoker = new RunspaceInvoke(runspace))
                {
                    output = invoker.Invoke("Set-ExecutionPolicy Unrestricted");
                    PrintOutput(output);
...

我知道在 .NET Core 中,RunspaceConfiguration 已被弃用,取而代之的是使用 InitialSessionState。但我不确定如何处理 RunspaceInvoke,它在 .NET Core 中不存在(据我所知)。在 .NET Core 中调用运行空间(或执行一些合适的解决方法)的方法是什么?

Runspace 只是 Powershell 的一个实例。

要在 .NET Core 中创建 PowerShell 实例,请使用 System.Management.Automation 的 PowerShell class 及其 PowerShell.Create() 方法:

            InitialSessionState runspaceConfiguration = InitialSessionState.Create();

            using (Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration))
            {
                runspace.Open();
                using (PowerShell invoker = PowerShell.Create(runspace))
                {

                    output = invoker.Invoke("Set-ExecutionPolicy Unrestricted");
                    PrintOutput(output);