系统.经营自动化与不兼容.NET核心3.1



我想用C#编写PowerShell。red-gate.com上有一个有用的链接,描述了该过程的步骤。作者使用。Net Framework作为类库项目。我对此没有任何问题,但是,我也想为编写函数。Net Core,使它们也能跨平台运行。我用目标框架netcoreapp3.1创建了一个新项目。当我安装System.Management.Automation 7.1.2时,我得到错误:

Error   NU1202  Package System.Management.Automation 7.1.2 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package System.Management.Automation 7.1.2 supports: net5.0 (.NETCoreApp,Version=v5.0)

我对支持的.NETCoreApp v5.0感到困惑。使用此链接https://dotnet.microsoft.com/download有。NET v5.0和。NET核心3.1。当我以net5.0为目标时,我得到一个错误,即找不到引用程序集,但我安装了。NET 5.0 SDK。

C:UsersAlex_P>dotnet --list-sdks
3.1.403 [C:Program Filesdotnetsdk]
5.0.201 [C:Program Filesdotnetsdk]

我的问题是,如何在中使用System.Management.Automation。NET Core(跨平台项目(编写PowerShell函数?

尽管System.Management.Automation包的NuGet页面没有提到这一点,但该包并非直接使用。

相反,根据您的用例,使用本答案中描述的包之一。

要针对PowerShell(Core(7+,请使用Microsoft.PowerShell.SDK包。

  • 确定具体内容。NET(Core(运行时给定的包版本必须至少与相结合,在链接页面上选择感兴趣的包版本,展开Dependencies部分,并查阅第一个条目;例如对于包版本7.1.3。NET(Core(运行时为net5.0

最新更新