c# - 如何使用 PCL 库中的 GZipStream?

标签 c# xamarin portable-class-library

我正在尝试创建一个需要 System.IO.Compression.GZipStream 的 PCL。我的 PCL 应在“常规”.NET 4.x 和 Xamarin.iOS 上使用。

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

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

所以我的问题是:

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

我的 PCL 目标设置:

enter image description here

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

enter image description here

最佳答案

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

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

  • .NET Framework 4.5
  • ASP.NET 核心 5.0
  • Windows 8
  • Windows 手机 8.1
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.iOS(经典)

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

关于c# - 如何使用 PCL 库中的 GZipStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34876873/

相关文章:

c# - 即使在对象浏览器中可见,也无法访问可移植类库中的 "System.Servicemodel.Web"

c# - Chrome 打开一瞬间然后使用 selenium webdriver 关闭

c# - UIImageView 在触摸时更改 UIImage 然后恢复以前的 UIImage

ios - 如何在 UiTableViewCell 中动态更改 ImageView?

listview - ContextAction MenuItem 图标在基于 Xamarin.Forms PCL 的解决方案中未显示在 iOS 平台中

c# - 在隔离存储中缓存变量,可移植类库方式

c# - c 从函数中快速返回对象

c# - 不允许新事务,因为 session 中还有其他线程在运行 LINQ To Entity

c# - 为什么不能在 Nullable<T> 简写上调用静态方法?

c# - .Net Core、Portable、Standard、Compact、UWP 和 PCL 之间的区别?