我正在尝试使用 Visual Studio 2010 中的NuGet包管理器安装Humanizer(另请参阅GitHub和NuGet 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.InstallPackageCommandPM>
我直接联系了作者(随后提出了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的。
答案 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,那么它应该可以正常工作。