如何从PCL库中使用GZipStream?

时间:2016-01-19 12:30:00

标签: c# xamarin portable-class-library

我正在尝试创建一个需要System.IO.Compression.GZipStream的PCL。我的PCL将用于常规' .NET 4.x和Xamarin.iOS。

现在这两个平台似乎都有这个类:我可以为每个平台创建一个项目,并且可以很好地访问它。

但是,如果我创建一个针对 .NET Framework 4.5 Xamarin.iOS 的PCL(在Visual Studio 2015中),则无法找到该类,因为它似乎是在PCL配置文件子集之外。

所以我的问题是:

  • 为什么我无法访问压缩,即使它似乎在两个平台上都可用(例如,这似乎表明它是.NET 4.5 PCL配置文件的一部分),并且
  • 我该怎么办才能获得访问权?

我的PCL定位设置:

enter image description here

如果我尝试取消选择Silverlight 5,会发生什么:

enter image description here

1 个答案:

答案 0 :(得分:3)

@anders是对的。您的屏幕截图显示您在PCL配置文件中选择了Silverlight。

要启用Profile111,请编辑.csproj或在VS2015中检查:

  • .NET Framework 4.5
  • ASP.NET Core 5.0
  • Windows 8
  • Windows Phone 8.1
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.iOS(经典)

即使您检查了兼容的配置文件,为什么它不可用:需要将PCL中的每个功能的支持专门添加到PCL配置文件中。它不会自动出现。并非所选平台的每个子集都作为PCL配置文件存在。发生的事情是您检查了您感兴趣的平台。然后Visual Studio选择其中一个兼容的配置文件。在这种情况下,不幸的是包含Silverlight的配置文件。微软承认这令人困惑,并将改善这一点。