2015-09-26 84 views
15

我面臨下面無法加載文件或程序集「Newtonsoft.Json,版本= 7.0.0.0

無法加載文件或組件中的錯誤」 Newtonsoft.Json,版本= 7.0.0.0, 文化=中立,PublicKeyToken = 30ad4fe6b2a6aeed'或其 依賴項之一。找到的程序集的清單定義不符合程序集引用的 。 (異常來自HRESULT:0x80131040)

我可以看到在Web.config中

<dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" /> 
     <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> 
     </dependentAssembly> 

以下於是我改成了

<dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" /> 
     <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.1.0" /> 
     </dependentAssembly> 

在packeges.config我可以看到下面的條目

但我仍面臨同樣的問題。請幫忙

+0

原因可能很多。首先:檢查輸出文件夾中的程序集,並檢查文件版本和強名稱是否符合您的期望。我懷疑強名稱版本是7.0.0.0所以更改bindingRedirect(強名稱和文件版本可能會有所不同 - 它爲Newtonsoft.Json 6. *)。 –

回答

34

很多事情都可能出錯,這個錯誤信息告訴你什麼都沒有。

但我仍面臨同樣的問題。

也許最簡單的方法是嘗試重新安裝軟件包。

轉到工具> NuGet包管理器和選擇包管理器控制檯。執行以下兩條命令:

uninstall-package newtonsoft.json -force 
install-package newtonsoft.json 

如果仍然這樣做後得到一個錯誤,那麼什麼工作對我來說,最終是我刪除Json.Net的部分從我的config文件。如果不存在,重新安裝會將其還回,顯然您需要將其刪除。在包裝本身會有一個正常的解決方案之前,恐怕這個手動步驟是必須的。在包管理器控制檯中再次執行:

Update-Package –reinstall Newtonsoft.Json 

另請參閱您的解決方案中的.Net version項目。

這是卸載項目的Microsoft solution

+0

我也有一個包含牛頓軟件包的問題.JSON作爲先決條件,目前安裝的是6.x.更新軟件包不起作用,但uinstall /重新安裝下載了當前的9.x並修正了錯誤。 – ajeh

0

大多數情況下,由於不同的程序集而發生此錯誤取決於某些其他程序集的特定版本。

最簡單的修復方法是使用nuget軟件包管理器更新所有依賴於Newtonsoft.Json的軟件包。

它會自動設置項目中的所有配置文件。

0

我得到了同樣的錯誤,並通過在我的解決方案上執行「清理」來修復它。我在UWP應用程序中使用Newtonsoft.Json。

0

謝謝@ekostadinov。我能夠使用@ekostadinov的解決方案進行工作。在我的情況下,默認的Web MVC模板具有NewtonSoft JSON版本6.我添加了一個類庫,並且我從Nuget包管理器安裝了NewtonSoft JSON版本9。

我試圖從我的Web項目,包配置和依賴關係中刪除引用,但仍然出現錯誤。現在,我收到錯誤消息,說無法找到Newtonsoft JSON版本6.最初我收到錯誤消息說無法找到Newtonsoft JSON版本9.

然後我遵循@ekostadinov步驟。

uninstall-package newtonsoft.json -force 
install-package newtonsoft.json 

我對於警告的包管理器控制檯提的關於與Web.Grease DLL版本的依賴依賴。但無論如何,這是成功的。

只是爲了仔細檢查,我跑在上面的帖子

Update-Package –reinstall Newtonsoft.Json 

它跑沒有任何警告,以及提到的最後一個命令。

現在,我可以在我的所有項目中使用版本9。

0

如果package.config包含2個具有不同版本的相同軟件包名稱,則會發生這種情況。

例如,

<package id="System.Spatial" version="5.6.2" targetFramework="net45" /> 
<package id="System.Spatial" version="5.6.4" targetFramework="net45" /> 

謝謝。

0

我有同樣的問題,並執行卸載和重新安裝沒有幫助。當時我試圖安裝Newtonsoft.Json的最新版本(10.0.3)。我最終安裝了7.0.1版本,然後運行了另一篇文章,建議將該.dll複製到:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE。我做了哪些。

再次啓動安裝REST API過程,然後收到不同的錯誤。當試圖安裝Microsoft.Rest.ClientRuntime 2.3.2失敗。爲此,我剛進入NuGet,並將其安裝到我安裝了REST API的項目中。

再次啓動REST API安裝,並且這次安裝。

哦,如果它幫助任何人搜索,我在Windows Server 2012R2上使用VS2015做Azure Immersion 02-API App教程。