String.Copy 在 Xamarin PCL 项目中不可用?

String.Copy not available in Xamarin PCL project?

根据 documentation 应该有一个静态 String.Copy 方法可用。但是它在我的设置中不可用:

这是有关所有已安装版本的详细信息:

=== Visual Studio Community 2017 for Mac ===

Version 7.0.1 (build 24) Installation UUID: fda7d9c6-ac7a-446b-895c-2823b983c917 Runtime: Mono 5.0.1.1 (2017-02/5077205) (64-bit) GTK+ 2.24.23 (Raleigh theme)

Package version: 500010001

=== NuGet ===

Version: 4.0.0.2323

=== .NET Core ===

Runtime: /usr/local/share/dotnet/dotnet SDK: /usr/local/share/dotnet/sdk/1.0.3/Sdks MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/5.0.1/lib/mono/msbuild/15.0/bin/Sdks

=== Xamarin.Profiler ===

Version: 1.5.4 Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

=== Xamarin.Android ===

Version: 7.3.1.2 (Visual Studio Community) Android SDK: /Users/milen/Library/Developer/Xamarin/android-sdk-macosx Supported Android versions: 4.4 (API level 19) 7.1 (API level 25)

SDK Tools Version: 25.2.5 SDK Platform Tools Version: 25.0.4 SDK Build Tools Version: 25.0.3

Java SDK: /usr java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

Android Designer EPL code available here: https://github.com/xamarin/AndroidDesigner.EPL

=== Xamarin Inspector ===

Version: 1.2.2 Hash: b71b035 Branch: d15-1 Build date: Fri, 21 Apr 2017 17:57:12 GMT

=== Apple Developer Tools ===

Xcode 8.3.3 (12175.1) Build 8E3004b

=== Xamarin.iOS ===

Version: 10.10.0.36 (Visual Studio Community) Hash: d2270eec Branch: d15-2 Build date: 2017-05-22 16:30:53-0400

=== Xamarin.Mac ===

Version: 3.4.0.36 (Visual Studio Community)

=== Build Information ===

Release ID: 700010024 Git revision: 7ab1ca2ced6f584e56b7a0d4d321d00775cd95c9 Build date: 2017-05-19 05:44:51-04 Xamarin addins: 08d17158f3365beee5e60f67999e607cce4b3f93 Build lane: monodevelop-lion-d15-2

=== Operating System ===

Mac OS X 10.12.5 Darwin 16.6.0 Darwin Kernel Version 16.6.0 Fri Apr 14 16:21:16 PDT 2017 root:xnu-3789.60.24~6/RELEASE_X86_64 x86_64

代码在 PCL 中,配置文件如下:

我找不到关于此类问题的任何信息。可能是什么原因?

就像 Jimbot 在评论中所说的那样,String.Copy 在 Windows Phone 和 UWP 上不可用,也许它在其他一些平台上也不可用。使用 PCL 意味着您将仅获得库中与所有选中平台相交的部分的支持。

所以在你的截图中,一个方法必须在你在那里检查过的所有平台上都可用。如果该方法在其中一个上不可用,那么您将无法访问它。这就是 PCL 的工作方式。在 Xamarin 文档 here.

中阅读更多相关信息

克服这个问题:

  • 要么找到另一种方法来使用您可用的方法
  • 取消选中不受支持的平台,注意你也将失去 运行 你的应用程序在该平台上的能力,你需要做大量研究哪些平台支持 String.Copy 以及哪些一个没有
  • 使用 Shared project.