我想用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