Powershell: Referenciando System.Management.Automation no código .NET Core / VS

Criado em 16 set. 2016  ·  3Comentários  ·  Fonte: PowerShell/PowerShell

Qual é a maneira correta de fazer referência a System.Management.Automation? Por exemplo, este snippet 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 quando você executa a restauração dotnet, pois encontra e afirma instalar a dependência System.Management.Automation (observando que .17515 não é compatível com .NET Core). Mas você não pode simplesmente adicionar um using no código, ou ele diz:

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

A intenção aqui é instanciar programaticamente o PowerShell no código, mas o .NET Core é um pouco restritivo na forma como deseja que as referências sejam tratadas ...

Area-Maintainers-Build Issue-Question

Todos 3 comentários

Este é um problema conhecido do NuGet que estamos tentando resolver. Existem vários pacotes System.Management.Automation desonestos que pessoas externas postaram. Esses pacotes são todos assemblies "FullCLR" e não são compatíveis com o PowerShell Core.

A maneira atual de consumir a versão PowerShell Core de System.Management.Automation é copiar a técnica usada por este projeto. Nosso arquivo nuget.config aponta para a versão correta postada no MyGet. powershell-win-core \ project.json mostra como consumi-lo dentro de seu project.json.

Olá, Don.

Existem algumas coisas sobre dotnet cli que podem ajudá-lo a resolver o problema.

Perfeito.

Esta página foi útil?
0 / 5 - 0 avaliações