便携式 Class 库项目不能与 NuGet 一起工作

Portable Class Library Projects Dont Work with NuGet

我有一个有趣的错误,NuGet 将无法在便携式 Class 库项目中工作。我创建了一个可移植的 class 库项目,当我尝试搜索(通过 NuGet 对话框)或安装(通过控制台)时,出现以下错误:

Specified argument was out of the range of valid values. Parameter name: supportedFrameworks

我在 VS2012 中的所有项目(Class 等)中都遇到了这个错误,但我遵循了 this 的建议并且它已经修复了它,但 PCL 项目除外。在 class 项目中,NuGet 对话框将列出包并安装它们,而不是在 PCL 中。

出了什么问题,我该如何解决?

注意:我正在VS2012中创建一个Xamarin跨平台项目(即该项目是一个PCL解决方案)。也许这是导致错误的原因 - Xamarin 的 VS 扩展?我也在使用 VS2012 专业试用版 - 这可能是问题所在吗?

编辑 也许我没有 PCL 设置?例如我没有文件夹 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.5\Profile.

据我所知 Visual Studio 2012 不包括任何便携式 Class 库。它们与 Visual Studio 2013 一起安装。否则您将不得不自己安装它们 involves several steps

  1. 安装 Portable Library Tools and the Portable Library Reference Assemblies 4.6.
  2. 从 Portable Library Reference Assemblies 4.6 安装到 C:\Program Files (x86)\Microsoft .NET Portable Library Reference Assemblies 4.6 的 .zip 文件中提取 PCLs。
  3. 将提取的PCL复制到C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable
  4. 修复 Xamarin 安装,以便将其 PCL 配置文件 xml 文件添加到新的 PCL 目录。