Powershell: Referenciar System.Management.Automation en .NET Core / VS Code

Creado en 16 sept. 2016  ·  3Comentarios  ·  Fuente: PowerShell/PowerShell

¿Cuál es la forma correcta de hacer referencia a System.Management.Automation? Por ejemplo, este fragmento de project.json:

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Configuration.CommandLine": "1.0.0",
    "Microsoft.AspNetCore.Routing": "1.0.0",
    "System.Security.Cryptography.Algorithms": "4.2.0",
    "System.Management.Automation": "6.1.7601.17514"
  },

Funciona cuando ejecuta dotnet restore ya que encuentra y afirma instalar la dependencia System.Management.Automation (teniendo en cuenta que .17515 no es compatible con .NET Core). Pero no puede simplemente agregar un uso en el código, o dice:

The type or namespace name 'Management' does not exist in the namespace 'System'

La intención aquí es crear una instancia de PowerShell mediante programación en el código, pero .NET Core es un poco restrictivo en la forma en que quiere que se manejen las referencias ...

Area-Maintainers-Build Issue-Question

Todos 3 comentarios

Este es un problema conocido de NuGet que estamos intentando resolver. Hay una serie de paquetes System.Management.Automation no autorizados que han publicado personas externas. Esos paquetes son todos ensamblados "FullCLR" y no son compatibles con PowerShell Core.

La forma actual de consumir la versión PowerShell Core de System.Management.Automation es copiar la técnica utilizada por este proyecto. Nuestro archivo nuget.config apunta a la versión correcta que se publica en MyGet. powershell-win-core \ project.json muestra cómo consumirlo dentro de su project.json.

Hola Don.

Hay algunas cosas sobre dotnet cli que pueden ayudarlo a resolverlo.

Perfecto.

¿Fue útil esta página
0 / 5 - 0 calificaciones