尝试从.NET Framework移植现有的依赖Powershell的类库

时间:2019-03-06 16:16:58

标签: c# .net powershell .net-core

我有.NET Framework类库,其中包含一些使用旧版Powershell的代码:

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

//some code executing powershell commands in runspaces and processing results, similar to this:
    var runspace = RunspaceFactory.CreateRunspace();
            using (var powerShell = PowerShell.Create())
            {
                powerShell.Runspace = runspace;
                powerShell.Commands.AddScript(psscript);
                results = powerShell.Invoke();
                //process results, etc...
            }

我正在尝试使用带有Powershell Core的软件包Microsoft.Powershell.SDK将其移植到.NET Core。它在大多数情况下都可以正常运行,但是由于明显的原因,它无法运行旧的Powershell命令(add-pssnapin等)。

该类库旨在在各种机器上使用,其中一些机器需要那些旧的powershell命令才能工作,而另一些机器则需要使用Powershell Core。我该如何实现?

我能想到的唯一解决方案是制作两个单独的项目,其中一个用于.NET Framework,另一个用于.NET Core,但是似乎有两个具有相同代码的项目(带有这些旧命令的4-5行除外)就像一个坏主意。有没有更好的方法可以做到这一点?

0 个答案:

没有答案