为什么我不能安装目标框架配置文件为136的NuGet包?

时间:2014-06-17 10:32:50

标签: visual-studio-2010 .net-4.0 nuget

我正在尝试使用 Visual Studio 2010 中的NuGet包管理器安装Humanizer(另请参阅GitHubNuGet Gallery页面)。文档表明它应该支持.NET 4 +。

在一个全新的空MVC4项目上发出以下命令:

  

PM> install-package Humanizer

给我以下结果:

  

成功安装'Humanizer 1.26.1'   成功卸载'Humanizer 1.26.1'   安装失败。回滚...
  安装包:无法安装包'Humanizer 1.26.1'。您正在尝试将此软件包安装到以“.NETFramework,Version = v4.0”为目标的项目中,但该软件包不包含与该框架兼容的任何程序集引用。有关更多信息,请联系包裹作者   在行:1 char:16
  + install-package<<<< Humanizer
      + CategoryInfo:NotSpecified:(:) [Install-Package],InvalidOperationException
      + FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

     

PM>

我直接联系了作者(随后提出了an issue on GitHub)。他提到该软件包的目标是Profile136(也可以是seen in the csproj file),它应该支持.NET 4:

<TargetFrameworkProfile>Profile136</TargetFrameworkProfile>

我浏览了一下并阅读了this SO question,其中讨论了构建可移植类库。阅读完之后,我发现Visual Studio 2010 requires an add-in可以构建PCL。

我意识到我不是在这里建造,但我还是和updated reference assemblies v4.6一起安装了它。

查看了以下文件夹:

C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETPortable \ v4.0 \ Profile

我发现我的配置文件最多只有131个,但没有136个。

answer to the SO question mentioned earlier表示在Windows Phone SDK 8.0中添加了136。但是我无法在Windows 7上安装它。

为什么我不能在Visual Studio 2010中安装此软件包?是因为我的计算机上没有配置文件136,或只是构建 PCLs?

请注意,我已成功安装了其他NuGet包,例如log4net的。

1 个答案:

答案 0 :(得分:2)

您不需要安装可移植类库来将Humanizer NuGet包添加到面向.NET 4.0的项目中。

Profile 136位于Portable v4.6参考程序集中。要安装它,您需要解压缩安装程序安装的zip文件。但是,您不需要安装任何PCL。

作为测试,我重命名了.NETPortable库目录,因此NuGet没有检测到可移植库。然后使用一个空的ASP.NET MVC 4项目,我可以在Visual Studio 2010中添加对Humanizer的引用。

如果您安装了最新版本的NuGet,那么它应该可以正常工作。