引用 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”程序集,与 PowerShell Core 不兼容。
当前使用 System.Management.Automation 的 PowerShell Core 版本的方法是复制此项目使用的技术。 我们的nuget.config文件指向发布到 MyGet 的正确版本。 powershell-win-core\project.json展示了如何在 project.json 中使用它。
嗨,唐。
很少有关于dotnet
cli 的事情可以帮助您解决问题。
nuget.config
明确指定 nuget 提要,它将使用https://www.nuget.orgframeworks / net451 / frameworkAssemblies
下包含引用,例如https://github.com/PowerShell/PowerShell/blob/dd2394b1e6088f6c82054f5cae5520e532010fd4 /src/System.Management.Automation/project.json#L188dependencies
分段project.json
:globabl和框架的具体。 你应该适当地使用它们。完美的。