更新 ASP.NET MVC 6 中的 NuGet 包

10

我刚刚创建了一个新的ASP.NET MVC 6项目,并希望将NuGet包更新到最新版本(默认项目模板通常非常过时)。我注意到以下更新是可能的:

  • Antlr.3.4.1.9004 > Antlr.3.5.0.2
  • Newtonsoft.Json.6.0.4 > Newtonsoft.Json.6.0.8
  • WebGrease.1.5.2 > WebGrease.1.6.0

当我尝试使用NuGet包对话框或通过更新project.json文件中Newtonsoft.json的版本号来升级这些软件包时,会遇到错误。

1) 严重性 代码 描述 项目 文件 行 错误 未实现(HRESULT: 0x80004001 (E_NOTIMPL)) 0

2) 严重性 代码 描述 项目 文件 行 错误 无法还原 NuGet 包,有一个或多个包失败。有关详细信息,请参见“输出”窗口。 Mvc6ProjectName C:[路径]\Mvc6ProjectName\project.json 0

3) 严重性 代码 描述 项目 文件 行 错误 依赖项 Newtonsoft.Json >= 6.0.8 无法解析 Mvc6Boilerplate C:\Git\ASP.NET-MVC-Boilerplate\Source\MVC6\Mvc6Boilerplate\project.json 19

我还有一个MVC项目,正在使用最新的NuGet包,那么为什么不能升级这些软件包?这与我们无法指定运行时assemblyBinding的web.config文件有关吗?

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
      <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

更新 1

当我尝试从包管理器控制台更新 Newtonsoft.Json 时,出现以下错误:

PM> Update-Package Newtonsoft.Json -ProjectName Mvc6Boilerplate -Version 6.0.8 Package with the Id 'Newtonsoft.Json' is not installed to project 'Mvc6Boilerplate'.

看起来在默认的 MVC 6 项目中并没有安装 Newtonsoft.Json,而是作为另一个项目的依赖项进行安装。该 NuGet 包在 Nuget 包管理器中实际上并没有显示,但会在 project.json 文件以及 References->DNX 和 DNX Core 树形视图项目下进行显示。

当我尝试显式安装 Newtonsoft.Json 包时,它确实升级到 6.0.8,但随后出现了我列出的错误。


1
如果您转到“输出窗口”,将下拉菜单更改为“包管理器”,那么您可以在那里找到哪些错误?我在升级软件包时没有遇到问题。我已经手动向xproj文件中添加了<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>以处理绑定问题。 - Matt DeKrey
请查看我上面的更新1。我尝试添加AutoGenerateBindingRedirects,但没有帮助。 - Muhammad Rehan Saeed
1
我没想到 AutoGenerateBindingRedirects 会有任何不同。不幸的是,我的表述可能不够清晰 - 输出窗口与包管理器控制台不同。(相似的命名并没有帮助)。你通常可以使用 Ctrl+W, O 或顶部的快速启动栏来访问它。你可能需要更改下拉菜单... 会有很多 GET 和 CACHE 行,可能散布着一两个错误。 - Matt DeKrey
1
在beta-5之前的版本中,更新Newtonsoft.Json可能会出现问题:https://github.com/aspnet/Announcements/issues/24 - Matt DeKrey
你看起来完全不是在用MVC6。你确定你在使用MVC6吗? - Bart Calixto
3个回答

2
这个错误信息是:“严重代码说明项目文件行错误NuGet包恢复失败了一个或多个包。请在输出窗口中查看详细信息。”
我解决这个问题的方法是确保我以管理员身份运行VisualStudio。
不过,第一次构建时页面没有完全呈现好。

0

目前我所知道的最简单的解决方案是使用 Visual Studio 2013 而不是 2015 来升级您的软件包。


0

看起来问题已经解决了。您需要更新Nuget包管理器:

工具 > 扩展和更新 > 更新 > Visual Studio Gallery


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接