Powershell: 在 .NET Core / VS Code 中引用 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”程序集,与 PowerShell Core 不兼容。

当前使用 System.Management.Automation 的 PowerShell Core 版本的方法是复制此项目使用的技术。 我们的nuget.config文件指向发布到 MyGet 的正确版本。 powershell-win-core\project.json展示了如何在 project.json 中使用它。

嗨,唐。

很少有关于dotnet cli 的事情可以帮助您解决问题。

完美的。

此页面是否有帮助?
0 / 5 - 0 等级