C# 为什么有些NuGet软件包既提供了一个可移植的库,又提供了一个特定于平台的库?
据我所知,基于库的设计者选择支持的框架子集,可移植类库可以在许多平台上使用 我注意到,通过NuGet提供的许多库还包括特定于平台的实现,我想知道这需要什么 例如,该软件包有许多变体,包括:C# 为什么有些NuGet软件包既提供了一个可移植的库,又提供了一个特定于平台的库?,c#,nuget,portable-class-library,C#,Nuget,Portable Class Library,据我所知,基于库的设计者选择支持的框架子集,可移植类库可以在许多平台上使用 我注意到,通过NuGet提供的许多库还包括特定于平台的实现,我想知道这需要什么 例如,该软件包有许多变体,包括: Net 4.0版本 WinRT(Windows应用商店应用程序)Windows 8版本 支持NET4.0、WinRT等的可移植类库 为什么需要分发单独的.Net 4.0或WinRT版本的库? 可移植类库是否足够 当我设计自己的定制便携库时,我应该遵守这个约定吗 明确地说,我不是说需要一小部分特定于平台的代
- Net 4.0版本
- WinRT(Windows应用商店应用程序)Windows 8版本
- 支持NET4.0、WinRT等的可移植类库
明确地说,我不是说需要一小部分特定于平台的代码才能工作的可移植类库。它们通常有一个附带的托管库,其名称以.PlatformServices结尾。但我说的是NuGet包分发的核心库。当然,PCL版本可能足以满足您的需要。但是,当您创建自己的PCL类库项目时,您一定会发现,您可以在PCL项目中实际使用的.NET Framework类和方法的子集非常小。该子集是通过使用完整的.NET框架并减去无法在其他平台上工作的部分而创建的 限制最大的平台是Silverlight和Phone7,它们基于.NETCore版本的CLR。以及存储和电话8,基于通过WinRT api提供的服务。以这些为目标会很快减少您在库中可以做的事情的数量 Microsoft.Net.Http包经过优化,如果您不受其中一个受限平台的限制,则仍然可以使用一些与Http相关的方法和属性。您可以在packages子目录中查看,提供IntelliSense的System.Net.Http.Extensions.xml文件向您展示了在一个平台上可能实现的功能,而不是在另一个平台上。我明白了:
- HttpWebRequest.AllowAutoRedirect
- AuthenticationManager.PreAuthenticate
- HttpWebRequest.ProtocolVersion
- HttpRequestHeaders.TransferncodingChunked
- HttpClientHandler.UseProxy