2013-05-18 50 views
0

我最近添加了一個MVC4 Web應用程序到我的解決方案,並給它一個對我的通用類庫的引用。 Common類庫包含模型和上下文(EF Code First)。MVC 4添加控制器錯誤無法檢索我的模型的元數據

當嘗試使用Visual Studio的腳手架功能「添加控制器」的MVC4應用程序,我得到以下錯誤:

Unable to retrieve metadata for 'Common.Models.MyContext'. Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.

我發現了很多關於堆棧溢出類似的問題,但沒有他們針對此特定場景解決此特定錯誤消息。

在我的調查中,我發現如果我從公共庫中刪除所有添加的軟件包和第三方DLL,我可以使用「添加控制器」功能而不會出錯。這告訴我,我的包或第三方DLL的一個不是它需要的地方(如錯誤信息所示)。

所以我的問題是:

  1. 我如何找出哪個DLL導致了問題?有沒有Visual Studio腳手架日誌文件?
  2. 說我找到了犯規的dll ... dll需要在哪裏生存來修復腳手架錯誤?

回答

3

確保您的Web應用程序項目具有所有其他項目的必需參考。僅僅因爲你的Common項目依賴於DLL並不意味着該參考將被複制到你的Web項目中。您必須手動添加依賴DLL作爲參考,並將複製本地設置爲「真」

+1

Common正在使用的OData版本與Web應用程序使用的版本(5.1.0 vs 5.4.0)之間存在差異。這是由Azure媒體服務nuget包中的一個錯誤引起的。 –

+0

不錯的發現 - 注意:你總是可以使用綁定重定向來強制綁定到更新的版本(假設向後兼容)。 – viperguynaz

0

如果您使用的是獨立項目,請檢查EF是否具有相同的版本號!

相關問題