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 ...
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.
nuget.config
angeben, wird https://www.nuget.org . verwendetframeworks / net451 / frameworkAssemblies
einfügen, wie hier https://github.com/PowerShell/PowerShell/blob/dd2394b1e6088f6c82054f5cae5520e532010fd4 /src/System.Management.Automation/project.json#L188dependencies
Abschnitte in project.json
: global und Framework-spezifisch. Sie sollten sie angemessen verwenden.Perfekt.