我剛剛創建了一個新的ASP.NET MVC 6項目,並希望將NuGet包更新爲最新版本(默認項目模板通常非常過時)。我注意到以下更新是可能的:更新ASP.NET MVC中的NuGet包6
- 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軟件包對話框升級這些軟件包或更新Newtonsoft.json的project.json文件中的版本號時,出現錯誤。
1) Severity Code Description Project File Line Error Not implemented (Exception from HRESULT: 0x80004001 (E_NOTIMPL)) 0
2) Severity Code Description Project File Line Error NuGet Package Restore failed for one or more packages. See details in the Output window. Mvc6ProjectName C:[PATH TO MY FOLDER]\Source\Mvc6ProjectName\project.json 0
3) Severity Code Description Project File Line Error Dependency Newtonsoft.Json >= 6.0.8 could not be resolved 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>
更新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'.
似乎Newtonsoft.Json沒有安裝在默認的MVC 6項目,但安裝爲另一個項目的依賴。這個NuGet包實際上並不顯示在Nuget包管理器中,而是顯示在project.json文件中,也顯示在References-> DNX和DNX Core樹視圖項下。
當我嘗試顯式安裝Newtonsoft.Json軟件包時,它確實升級到6.0.8,但是隨後出現上面列出的錯誤。
如果你去到輸出窗口,改變下拉到「包管理器」,你可以找到有哪些誤區?升級包時我沒有看到問題。我手動添加了 true AutoGenerateBindingRedirects>到xproj文件來處理綁定問題。 –
看到我上面的更新1。我嘗試添加AutoGenerateBindingRedirects,但它沒有幫助。 –
我沒有想到'AutoGenerateBindingRedirects'有任何不同之處。不幸的是,我一定不清楚 - 輸出窗口與Package Manager控制檯不同。 (類似的命名沒有幫助。)通常可以通過「Ctrl + W,O」或使用頂部的快速啓動欄來訪問它。您可能需要更改下拉列表...將會有很多GET和CACHE行,可能包含一兩個錯誤。 –