我已经创建了一个NuGet包,支持.NetStandard 2.0预发布和.NetFramework v4.6.1之间的多目标(在Visual Studio 15.3预览中构建和使用)
我知道.NetStandard 2.0预发布版本在vnext之前与UWP不兼容,但我的理解是.NetFramework v4.6.1是兼容的。
我目前无法将我的NuGet软件包安装到UWP项目中,是否有办法使其兼容?
答案 0 :(得分:1)
.NET Standard是.NET API的正式规范,旨在提供给所有.NET运行时。它定义了所有.NET平台实现的统一API集,与工作负载无关。
当NuGet包定位于 .NET Standard 2.0 时,表示此包可以在 .NET Core 2.0 中使用和 .NET Framework 4.6.1 (使用工具2.0预览版)。从字面上看, .Net Standard 2.0 和 .NET Framework 4.6.1 之间没有多目标,它应该类似于 .NET Core 2.0 和 .NET Framework 4.6.1 之间的多目标。< / p>
如果您希望自己的软件包与 UWP 和 .NET Framework 4.6.1 兼容,那么您可以定位 .NET Standard 1.4 。这是两个平台现在都支持的.NET Standard的最高版本。因此无法将.NET Standard 2.0软件包安装到UWP项目中。
选择.NET标准版时,您应该考虑这种权衡:
- 版本越高,您可以使用的API就越多。
- 版本越低,实施它的平台就越多。
通常,我们建议您尽可能定位最低版本的.NET Standard。因此,在找到可以定位的最高.NET标准版本后,请按照以下步骤操作:
- 定位下一个较低版本的.NET Standard并构建您的项目。
- 如果您的项目成功构建,请重复步骤1.否则,重新定位到下一个更高版本,这是您应该使用的版本。
醇>
有关详细信息,请参阅.NET platforms support。
对于 UWP 和 .NET Framework 4.6.1 ,它们之间没有兼容性。虽然.NET Framework中提供的类型的子集可用于使用C#或Visual Basic创建UWP应用程序,但这是因为这些API是.NET Standard的一部分,因此它们在UWP中可用。如果程序包的目标是.NET Framework 4.6.1,那么它也不能在UWP中使用。