Powershell: .NET Core / VSコードでSystem.Management.Automationを参照する

作成日 2016年09月16日  ·  3コメント  ·  ソース: PowerShell/PowerShell

System.Management.Automationを参照する正しい方法は何ですか? たとえば、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"
  },

dotnet restoreを実行すると、System.Management.Automation依存関係が検出れてインストールされると主張されます(.17515は.NET Coreと互換性がないことに注意してください)。 ただし、コードにusingを追加するだけでは不十分です。または、次のように表示されます。

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

ここでの目的は、コード内でPowerShellをプログラムでインスタンス化することですが、.NET Coreは、参照の処理方法に少し制限があります...

Area-Maintainers-Build Issue-Question

全てのコメント3件

これは、解決しようとしているNuGetの既知の問題です。 外部の人々が投稿した不正なSystem.Management.Automationパッケージがいくつかあります。 これらのパッケージはすべて「FullCLR」アセンブリであり、PowerShellCoreとは互換性がありません。

System.Management.AutomationのPowerShellCoreバージョンを使用する現在の方法は、このプロジェクトで使用されている手法をコピーすることです。 nuget.configファイルは、MyGetに投稿された正しいバージョンを指しています。 powershell-win-core \ project.jsonは、project.json内でそれを使用する方法を示しています。

こんにちはドン。

dotnet cliについては、整理に役立つことがいくつかあります。

完全。

このページは役に立ちましたか?
0 / 5 - 0 評価