Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何实现.NET标准NuGet包?_.net_Nuget Package_.net Standard - Fatal编程技术网

如何实现.NET标准NuGet包?

如何实现.NET标准NuGet包?,.net,nuget-package,.net-standard,.net,Nuget Package,.net Standard,据我所知,.NET标准是一个规范,而不是一个实现。换句话说,它是一个API列表,它们由不同的.NET风格实现,如.NET Framework、.NET Core、Mono等 据我所知,NuGet包包含特定.NET风格的实现。因此,NuGut包可能包含.NET Framework和.NET Core的DLL 那么,当为.NET标准创建NuGet包时会发生什么呢?它包含什么样的DLL?我认为.Net标准是一个抽象层,定义了所有.Net风格中最常见的功能 Net标准程序集的用例是为应用程序创建业务逻辑

据我所知,.NET标准是一个规范,而不是一个实现。换句话说,它是一个API列表,它们由不同的.NET风格实现,如.NET Framework、.NET Core、Mono等

据我所知,NuGet包包含特定.NET风格的实现。因此,NuGut包可能包含.NET Framework和.NET Core的DLL


那么,当为.NET标准创建NuGet包时会发生什么呢?它包含什么样的DLL?

我认为.Net标准是一个抽象层,定义了所有.Net风格中最常见的功能

Net标准程序集的用例是为应用程序创建业务逻辑,然后在ASP.Net核心web应用程序中构建UI,在WPF应用程序中构建桌面UI。这两个UI应用程序都可以直接引用.Net标准库

Nuget包不必是任何特定类型的程序集。可以帮助您开始创建Nuget包

另外,来自Alik的链接很好地描述了这个问题的.Net Framework方面,但以最简单的形式,如果您在.Net标准程序集中编写共享代码,则不必为使用它的不同.Net平台重新编写

那么,当为.NET标准创建NuGet包时会发生什么呢? 它包含什么类型的DLL? 说.NET标准是一种规范而不是一种实现是不完全正确的。最终结果是正确的,但不是你如何做到的。以下是我的发现:

.NET Framework在mscorlib.dll中定义主类

.NET Core在System.Runtime.dll中定义主类

.NET标准在netstandard.dll中定义了主要类,因此当您构建.NET标准项目时,您正在引用netstandard.dll


.NET Framework和.NET Core包含其自己的netstandard.dll版本,该版本将替换.NET标准项目中的版本。替换的netstandard.dll使用类型转发将主类指向mscorlib.dll或System.Runtime.dll中的实现。

请参阅它可能会有所帮助。谢谢。但我还是不明白。假设我在.NET标准2.0中创建了一个库项目,并将其打包到一个NuGet包中。NuGet包是否包含DLL?如果是这样的话,在什么风格的.NET中?没有特定的风格,这正是我们的目标。它将是一个标准库,可以被所有其他风格的.Net使用。