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は、参照の処理方法に少し制限があります...
これは、解決しようとしているNuGetの既知の問題です。 外部の人々が投稿した不正なSystem.Management.Automationパッケージがいくつかあります。 これらのパッケージはすべて「FullCLR」アセンブリであり、PowerShellCoreとは互換性がありません。
System.Management.AutomationのPowerShellCoreバージョンを使用する現在の方法は、このプロジェクトで使用されている手法をコピーすることです。 nuget.configファイルは、MyGetに投稿された正しいバージョンを指しています。 powershell-win-core \ project.jsonは、project.json内でそれを使用する方法を示しています。
こんにちはドン。
dotnet
cliについては、整理に役立つことがいくつかあります。
nuget.config
でnugetフィードを明示的に指定しない場合は、https://www.nuget.orgが使用されます。frameworks / net451 / frameworkAssemblies
下に参照を含める必要があります。 /src/System.Management.Automation/project.json#L188project.json
はさまざまなdependencies
セクションがあります:globablとフレームワーク固有です。 適切に使用する必要があります。完全。