在ASP.NET MVC 6中更新NuGet包

时间:2015-05-19 10:38:05

标签: c# asp.net asp.net-mvc nuget asp.net-core-mvc

我刚刚创建了一个新的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包对话框升级这些软件包或更新newhostoft.json的project.json文件中的版本号时,我收到错误。

  

1)严重级代码说明项目文件行错误未实现   (HRESULT异常:0x80004001(E_NOTIMPL))0

     

2)严重级代码说明项目文件行错误NuGet包   一个或多个包的还原失败。请参阅输出中的详细信息   窗口。 Mvc6ProjectName C:[路径到我的文件夹] \ Source \ 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包,那为什么我不能升级这些包呢?这与没有更多web.config文件的事实有关,我们可以在其中指定运行时assemblyBinding' s:

<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&GT;更新包Newtonsoft.Json -ProjectName Mvc6Boilerplate -Version 6.0.8   包含Id&#39; Newtonsoft.Json&#39;没有安装到项目&#39; Mvc6Boilerplate&#39;。

似乎Newtonsoft.Json没有安装在默认的MVC 6项目中,而是作为另一个项目的依赖项安装。此NuGet包实际上并未显示在Nuget包管理器中,但显示在project.json文件中,也显示在References-&gt; DNX和DNX Core树视图项下。

当我尝试显式安装Newtonsoft.Json软件包时,它确实升级到了6.0.8,但我得到了上面列出的错误。

3 个答案:

答案 0 :(得分:2)

此错误: “严重程序代码说明项目文件行错误NuGet程序包还原对于一个或多个程序包失败。请参阅”输出“窗口中的详细信息。

...通过确保我以管理员身份运行VisualStudio来解决这个问题。

虽然,第一次构建时页面没有完全呈现。

答案 1 :(得分:0)

我现在知道的最简单的解决方案是使用D代替Visual Studio 2013来升级您的软件包。

答案 2 :(得分:0)

似乎问题已经解决了。您必须更新NugetPackage Manager:

工具&gt;扩展程序和更新&gt;更新&gt; Visual Studio Gallery