在不同框架上运行.NET标准二进制文件



我理解目标.NET标准2意味着.NET Core,Mono和完整的.NET框架之间的框架,但是我想了解这对由由二进制文件创建的二进制文件意味着什么不同的框架。

因此,如果我创建针对.NET标准2的控制台程序并使用.NET框架编译,那么只能完整的.NET框架运行此文件?如果他们都可以运行文件,我将如何使用Full Framework或Mono运行.NET Core .dll可执行控制台?

基本上,每个框架创建的二进制文件(Targiniting .NET标准(能够使用其他框架运行?

我相信与便携式类库的比较可能说:

.NET标准是替代便携式类库(PCL(。

.NET标准本身不是A 运行时它是用于多个不同运行时间的类型转发机制。因此,除了非执行类库中的

一样,不可能创建任何东西。 。 。

这使类库可以被针对特定运行时间的可执行组件消费(.NET Framework,.net Core,Xamarin.ios,Mono等(。

在类和界面方面考虑这一点很有帮助。在伪代码中,.NET标准是一个.NET Framework和.Net Core enasement。

public interface INetStandard
{
    // Only has API definitions
}
public class NetFramework : INetStandard
{
    // .NET Framework Runtime implemented here
}
public class NetCore : INetStandard
{
    // .NET Core Runtime implemented here
}

这使得可以使用.NET框架或.NET核心使用.NET标准,但是.NET标准本身没有运行时,只有一组API,可以在运行时间之间共享。您可以通过项目对准三个中的任何一个,但是您无法执行.NET标准,而不是实例化接口。

不幸的是,您不是第一个询问此问题的人,除非Microsoft更清楚地知道.NET标准实际上不会执行,否则您可能不会是最后一个。

最新更新