Powershell: Verweis auf System.Management.Automation in .NET Core / VS-Code

Erstellt am 16. Sept. 2016  ·  3Kommentare  ·  Quelle: PowerShell/PowerShell

Wie referenziert man System.Management.Automation richtig? ZB dieser Ausschnitt aus 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"
  },

Funktioniert, wenn Sie dotnet restore ausführen, da es die System.Management.Automation-Abhängigkeit findet und behauptet, sie zu installieren (wobei darauf hingewiesen wird, dass .17515 nicht mit .NET Core kompatibel ist). Aber Sie können nicht einfach ein using im Code hinzufügen, oder es heißt:

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

Die Absicht hier besteht darin, PowerShell im Code programmgesteuert zu instanziieren, aber .NET Core ist etwas restriktiv in der Art und Weise, wie Referenzen behandelt werden sollen ...

Area-Maintainers-Build Issue-Question

Alle 3 Kommentare

Dies ist ein bekanntes Problem für NuGet, das wir versuchen zu beheben. Es gibt eine Reihe von betrügerischen System.Management.Automation-Paketen, die externe Personen veröffentlicht haben. Diese Pakete sind alle "FullCLR"-Assemblys und sind nicht mit PowerShell Core kompatibel.

Die aktuelle Methode zum Verwenden der PowerShell Core-Version von System.Management.Automation besteht darin, die von diesem Projekt verwendete Technik zu kopieren. Unsere Datei nuget.config verweist auf die richtige Version, die an MyGet gepostet wird. powershell-win-core\project.json zeigt, wie Sie es in Ihrem project.json verwenden.

Hallo Don.

Es gibt einige Dinge über dotnet cli, die Ihnen helfen können, das Problem zu lösen.

Perfekt.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen