Quiero escribir PowerShell en C#. Hay un enlace útil de red-gate.com que describe los pasos del proceso. El autor utiliza .Net Framework como proyecto de biblioteca de clases. No tengo problemas con eso, sin embargo, me gustaría escribir mis funciones también para .Net Core para que también sean funcionales entre plataformas. Creé un nuevo proyecto con el marco de destino netcoreapp3.1 . Cuando instalo System.Management.Automation 7.1.2 me sale el error:
Error NU1202 Package System.Management.Automation 7.1.2 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package System.Management.Automation 7.1.2 supports: net5.0 (.NETCoreApp,Version=v5.0) Estoy confundido con el .NETCoreApp v5.0 . Con este enlace https://dotnet.microsoft.com/download hay .NET v5.0 y .NET Core 3.1. Cuando me dirijo a net5.0 , aparece el error de que no se encuentran los ensamblajes de referencia, pero instalé el SDK de .NET 5.0.
C:\Users\Alex_P>dotnet --list-sdks 3.1.403 [C:\Program Files\dotnet\sdk] 5.0.201 [C:\Program Files\dotnet\sdk] Mi pregunta, ¿cómo puedo usar System.Management.Automation en un .NET Core (proyecto multiplataforma) para escribir funciones de PowerShell?
Aunque, lamentablemente, la página NuGet del paquete System.Management.Automation no lo menciona, este paquete no está diseñado para usarse directamente.
En su lugar, use uno de los paquetes descritos en esta respuesta , según su caso de uso.
Para apuntar a PowerShell (Core) 7+ , use el paquete Microsoft.PowerShell.SDK .
Dependencies y consulte la primera entrada; por ejemplo, para la versión 7.1.3 del paquete, el tiempo de ejecución mínimo requerido de .NET (Core) es net5.0