C# 如何确定哪些PCL配置文件包含我需要的库实现?

C# 如何确定哪些PCL配置文件包含我需要的库实现?,c#,mono,xamarin.forms,portable-class-library,C#,Mono,Xamarin.forms,Portable Class Library,我想在我的可移植类库项目中调用Thread.Sleep。这个方法是在我的iOS和Android项目的Mono库中实现的,所以理论上,我应该选择一个兼容的PCL配置文件。然而,事实证明,这比应该的困难得多 如何确定哪些PCL配置文件包含我需要的库实现,以及如何告诉Visual Studio引用该特定配置文件 我还没有找到任何关于MSDN的文档,这些文档甚至承认存在PCL配置文件编号,更不用说如何选择一个特定的了。目前我唯一的选择是手动引用profile文件夹中的System.dll,但这感觉就像走

我想在我的可移植类库项目中调用Thread.Sleep。这个方法是在我的iOS和Android项目的Mono库中实现的,所以理论上,我应该选择一个兼容的PCL配置文件。然而,事实证明,这比应该的困难得多

如何确定哪些PCL配置文件包含我需要的库实现,以及如何告诉Visual Studio引用该特定配置文件


我还没有找到任何关于MSDN的文档,这些文档甚至承认存在PCL配置文件编号,更不用说如何选择一个特定的了。目前我唯一的选择是手动引用profile文件夹中的System.dll,但这感觉就像走进了一个雷区。任何帮助都将不胜感激。

除非有人像搜索引擎一样在所有提供的PCL配置文件中编写一个实用程序,否则无法做到这一点

您对“此方法在我的iOS和Android项目的Mono库中实现”的描述显示了一些误解

  • 这是Xamarin库,而不是Mono。这两个品牌并不等同
  • 此方法可能在Xamarin.iOS和Xamarin.Android中可用,但由于微软方面最初的粗鲁决定,无法在PCL中使用。只要记住这一点,你就会明白为什么,如果你以后了解更多关于PCL如何在引擎盖下工作以及PCL配置文件的定义
  • 因此,如果您确实希望使用每一位,那么最好使用共享资产项目

    更多信息请访问Xamarin

    记录了截至VS2015更新3的所有可用PCL配置文件

    为了快速参考,以下是一些配置文件

    • Profile7-.NET Framework 4.5和Windows 8.0
    • Profile24-.NETFramework 4.5和Silverlight 5.0
    • Profile47-.NET Framework 4.5、Silverlight 5.0和Windows 8.0
    • Profile78-.NET Framework 4.5、Windows 8.0、Windows Phone Silverlight 8.0
    • Profile158-.NET Framework 4.5、Silverlight 5.0、Windows 8.0、, Windows Phone Silverlight 8.0
    • Profile255-.NET Framework 4.5、Silverlight 5.0、Windows 8.0& Windows Phone 8.1
    • Profile344-.NET Framework 4.5、Silverlight 5.0、Windows 8.0、, Windows Phone 8.1、Windows Phone Silverlight 8.0
    作为旁注

  • 会让你了解什么是PCL
  • 说明如何更改PCL配置文件

  • 这根本不是PCL的工作方式。选择目标,然后找出支持的内容。选择任意的目标是没有意义的。有很多替代Thread.Sleep()的方法,您可以使用Task.Delay()或ManualResetEvent.WaitOne()。我绝对不理解PCL,非常感谢您提供的任何澄清。据我目前了解,VS all中的Xamarin.iOS和Xamarin.Android项目引用Mono库,所有PCL引用在链接过程中都被Mono替换。但是,我找不到关于构建过程中实际发生的事情的任何文档/解释。都是黑匣子。你能给我指一个描述Xamarin如何使用PCL构建跨平台应用程序的资源吗?添加了一个指向Xamarin的链接,并从中获得了更多信息。我熟悉Xamarin文档的那一页,但我正在寻找更技术性的内容。包含PCL引用和MonoTouch引用表示.NET framework的两个冗余实现。在构建过程中如何解决这种冗余?这两种实现都包括在内吗?一个被另一个取代了吗?这个技术细节可能会出现在像《CLR via C#》这样的书中。或者简单地假设代码是根据PCL配置文件编译的,而在运行时,实际类型来自Xamarin.iOS程序集。类型转发就是这个神奇的术语。有趣。因此,我的iOS项目中的MonoTouch引用实际上可能是类型转发到PCL。