Qual é a maneira correta de fazer referência a System.Management.Automation? Por exemplo, este snippet 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"
},
Funciona quando você executa a restauração dotnet, pois encontra e afirma instalar a dependência System.Management.Automation (observando que .17515 não é compatível com .NET Core). Mas você não pode simplesmente adicionar um using no código, ou ele diz:
The type or namespace name 'Management' does not exist in the namespace 'System'
A intenção aqui é instanciar programaticamente o PowerShell no código, mas o .NET Core é um pouco restritivo na forma como deseja que as referências sejam tratadas ...
Este é um problema conhecido do NuGet que estamos tentando resolver. Existem vários pacotes System.Management.Automation desonestos que pessoas externas postaram. Esses pacotes são todos assemblies "FullCLR" e não são compatíveis com o PowerShell Core.
A maneira atual de consumir a versão PowerShell Core de System.Management.Automation é copiar a técnica usada por este projeto. Nosso arquivo nuget.config aponta para a versão correta postada no MyGet. powershell-win-core \ project.json mostra como consumi-lo dentro de seu project.json.
Olá, Don.
Existem algumas coisas sobre dotnet
cli que podem ajudá-lo a resolver o problema.
nuget.config
ele usará https://www.nuget.orgframeworks / net451 / frameworkAssemblies
, como aqui https://github.com/PowerShell/PowerShell/blob/dd2394b1e6088f6c82054f5cae5520e532010fd4 /src/System.Management.Automation/project.json#L188dependencies
seções em project.json
: globabl e específico da estrutura. Você deve usá-los apropriadamente.Perfeito.