g.p*_*dou 5 .net xamarin .net-core uwp .net-standard
上下文
虽然我知道.NET Standard是一个规范.我也明白平台(如.Core或Xamarin或UWP)符合("实现","支持")选择的.NET标准版本1.4或1.6.我也了解.NET标准版本的兼容性顺序.
题
如果我在Visual Studio中创建.NET Standard类lib并添加一些引用并对其进行编译,那么该特定编译程序集必须引用特定平台中的具体特定程序集.不过这种方式这个程序集绑定到该平台,这没有任何意义.
因此必须有一个不那么难的"引用"元数据,这个编译程序集的引用必须满足不同的程序集(具有相同的强名称?)在不同的平台实现中,我的程序集即将运行.
在所有阴天的解释中我真的错过了解释:这在实践中如何运作?理论和类比似乎很清楚.
想念我的东西?
所有程序集都是根据一组引用程序集编译的.这适用于所有项目类型,包括.NET Standard,.NET Core和.NET Framework(以及除.NET <= 3.5之外的所有其他项目,但为简单起见,我们忽略它).
.NET Standard为每个版本定义了一组引用程序集,用于编译.NET Standard程序集.
对于.NET Standard 2.0,最值得注意的参考程序集是netstandard.dll.如果您引用System.Object,编译器将发出IL代码引用[netstandard]System.Object.
任何"符合".NET Standard 2.0的平台都有一个实现程序集netstandard.dll,该程序集包含类型或包含类型转发定义.因此,对于.NET Framework,可以netstandard.dll包含一个转发类型[mscorlib]System.Object.另一个平台可能有不同的netstandard.dll,例如转发到[System.Runtime]System.Object.
除了netstandard.dll还有一些库支持.NET Standard 1.0-1.6以及一些其他类型的转发dll,它们构成了.NET Framework应用程序的兼容性垫片(请参阅.NET Standard 2.0使用的兼容性垫片以获得解释).
还有一些工具可以实际允许.NET Standard程序集在不包含这些转发程序集的平台上使用.该NETStandard.LibraryNuGet包包含这些为1.0-1.6和一个新的综合性的MSBuild工具增加了支持的DLL为.NET标准1.5-2.0 .NET框架4.6.1+..NET Framework 4.7.1包含所有必需的程序集,因此.NET Framework 4.7.1项目无需添加其他文件即可使用.NET Standard程序集.
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |