Могу ли я использовать класс PowerShell в .Net Standard для использования в проекте .Net Framework (exe) - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь создать стандартную библиотеку .net 2.0, которая вызывает команды и сценарии PowerShell с использованием классов PowerShell (System.Management.Automation). Я хочу использовать эту стандартную библиотеку .Net в проекте .Net Framework (4.7.2).

Я уже пытался использовать Microsoft.PowerShell.SDK и System.Management.Automation пакет NuGet в проекте .Net Standard, но я получаю эту ошибку:

System.IO.FileLoadException

 HResult=0x80131040
 Message=Could not load file or assembly'System.Management.Automation, Version=6.1.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Пример кода в проекте библиотеки .Net Standard 2.0:

Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();

PowerShell posh = PowerShell.Create();
posh.Runspace = runspace;

Как мне этого добиться? Любая помощь приветствуется.

1 Ответ

1 голос
/ 25 июня 2019

Если вы хотите настроить таргетинг на .NET Standard, вам следует обратиться к пакету PowerShellStandard.Library nuget

PowerShell Standard предоставляет только поверхность API, которая перекрывается между PowerShell 5.1 (.NET Framework)и PowerShell Core (.NET Core), поэтому он будет работать независимо от того, с какой версией вы будете компилироваться.

Рекомендуемое чтение: Стандартная библиотека PowerShell: создание единого модуля, который работает в Windows PowerShell и PowerShell Core

...