Powershell: Référencement de System.Management.Automation dans .NET Core / VS Code

Créé le 16 sept. 2016  ·  3Commentaires  ·  Source: PowerShell/PowerShell

Quelle est la bonne façon de référencer System.Management.Automation ? Par exemple, cet extrait 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"
  },

Fonctionne lorsque vous exécutez la restauration dotnet en ce sens qu'elle trouve et prétend installer la dépendance System.Management.Automation (en notant que .17515 n'est pas compatible avec .NET Core). Mais vous ne pouvez pas simplement ajouter un using dans le code, ou cela dit :

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

L'intention ici est d'instancier PowerShell par programmation dans le code, mais .NET Core est un peu restrictif dans la façon dont il veut que les références soient gérées...

Area-Maintainers-Build Issue-Question

Tous les 3 commentaires

Il s'agit d'un problème connu pour NuGet que nous essayons de résoudre. Il existe un certain nombre de packages System.Management.Automation malveillants que des personnes externes ont publiés. Ces packages sont tous des assemblys « FullCLR » et ne sont pas compatibles avec PowerShell Core.

La façon actuelle de consommer la version PowerShell Core de System.Management.Automation consiste à copier la technique utilisée par ce projet. Notre fichier nuget.config pointe vers la version correcte publiée sur MyGet. powershell-win-core\project.json montre comment le consommer dans votre project.json.

Salut Don.

Il y a peu de choses sur dotnet cli qui peuvent vous aider à régler le problème.

Parfait.

Cette page vous a été utile?
0 / 5 - 0 notes