什么是;Windows Powershell兼容性(.net标准2.0)";什么意思?

什么是;Windows Powershell兼容性(.net标准2.0)";什么意思?,powershell,.net-standard,Powershell,.net Standard,我一直在寻找一种在.net标准2.0中执行Powershell cmdlet的方法,但最终发现这是不可能的,因为Powershell是使用.net framework或.net core for Powershell core构建的 在我的研究中,我发现: 如果无法在.net标准中执行powershell,那么此项目代表什么?: .Net标准是一个规范,它定义了.Net平台必须实现的一组API。但它不是另一个.Net平台。您只能构建库,不能使用它构建可执行文件。在下面的屏幕截图中,您可以看到.N

我一直在寻找一种在.net标准2.0中执行Powershell cmdlet的方法,但最终发现这是不可能的,因为Powershell是使用.net framework或.net core for Powershell core构建的

在我的研究中,我发现:

如果无法在.net标准中执行powershell,那么此项目代表什么?

:

.Net标准是一个规范,它定义了.Net平台必须实现的一组API。但它不是另一个.Net平台。您只能构建库,不能使用它构建可执行文件。在下面的屏幕截图中,您可以看到.Net标准包含来自经典.Net框架、.Net核心和Xamarin的API

因此,您可以根据一个标准构建库,以确保它在NetFramework、NetCore或Xamarin下运行。这是因为(在标准中)定义的类、接口等集合是由前面提到的框架实现的。随着网络标准版本的增加,supportex类、接口的数量也在增加


由于Powershell不是一个库,您必须在Powershell 5.x(使用net framework)或Powershell 6(使用net core)之间进行选择。由于您可以从Powershell调用C#库,因此可以从Powershell 5和Powershell 6调用实现net标准的库。

您可以想到。net标准作为契约,它定义了哪些.net类方法可用于程序集。请参阅我在回答中提到的复制答案的后半部分。您可以从Powershell调用net LIB。下面是一个将log4net与Powershell结合使用的示例,多亏了您,我现在对所有这些都有了更好的理解。您可以在powershell和powershell core中使用.net标准类,但不能将powershell/core与.net标准一起使用,因为它仅用于库。现在一切都清楚了。