Попытка портировать существующую библиотеку классов, зависящую от powershell, из .NET Framework - PullRequest
1 голос
/ 06 марта 2019

У меня есть библиотека классов .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...
            }

Я пытаюсь перенести его на .NET Core, используя пакет Microsoft.Powershell.SDK с Powershell Core.По большей части он работает нормально, но по понятным причинам не может запускать устаревшие команды powershell (add-pssnapin и т. Д.).

Эта библиотека классов предназначена для использования на широком спектре машин, некоторыеиз них требуются те старые команды powershell для работы и другие, требующие использования Powershell Core.Как мне этого добиться?

Единственное решение, которое я могу придумать, - это сделать два отдельных проекта, один для .NET Framework, а другой для .NET Core, но с двумя проектами с одинаковым кодом (кроме 4-5 строк с этими старыми командами) кажется плохой идеей.Есть ли лучший способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...