【发布时间】:2014-08-07 07:57:37
【问题描述】:
我正在尝试使用 Visual Studio 2010 中的 NuGet 包管理器安装 Humanizer(另请参阅 GitHub 和 NuGet Gallery 页面)。文档建议它应该支持 .NET 4+。
对一个全新的空 MVC4 项目发出以下命令:
PM> 安装包 Humanizer
给我以下结果:
已成功安装“Humanizer 1.26.1”。
已成功卸载“Humanizer 1.26.1”。
安装失败。回滚...
安装包:无法安装包“Humanizer 1.26.1”。您正在尝试将此包安装到以“.NETFramework,Version=v4.0”为目标的项目中,但该包不包含与该框架兼容的任何程序集引用。如需更多信息,请联系包作者。
在行:1 字符:16
+ 安装包 + CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand下午>
我直接联系了作者(随后提出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,还是只需要构建 PCL?
请注意,我已经成功安装了其他 NuGet 包,例如log4net.
【问题讨论】:
-
奇怪。您无需安装可移植类库即可将 Humanizer NuGet 包安装到面向 .NET 4.0 的项目中。 Profile 136 位于 Portable v4.6 参考程序集中 - 要安装它,您需要解压缩安装程序安装的 zip 文件。但是,您不需要安装任何 PCL。为了测试这一点,我重命名了 .NETPortable 库,并且使用一个空的 MVC 4 项目可以在 VS 2010 中添加对 Humanizer 的引用。您是否安装了最新版本的 NuGet?
-
还可能值得查看本地计算机 (C:\Users\UserName\AppData\Local\NuGet\Cache) 缓存中的 Humanizer NuGet 包,看看它包含什么。
标签: visual-studio-2010 .net-4.0 nuget