在ASP.NET MVC 6中更新NuGet包

Muh*_*eed 9 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:

<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>
Run Code Online (Sandbox Code Playgroud)

更新1

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

PM> Update-Package Newtonsoft.Json -ProjectName Mvc6Boilerplate -Version 6.0.8包含Id'Newtoftoft.Json'的包未安装到项目'Mvc6Boilerplate'.

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

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

ddi*_*sqq 2

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

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

尽管如此,该页面在第一次构建时并未完全呈现。