2013-08-04 49 views
4

我在Visual Studio 2012中打開並編輯了一個在Visual Studio 2010中開發的ASP.NET MVC 3應用程序。它在Debug模式,但是當我試圖發佈它(發佈模式)時,它失敗並且拋出以下警告和錯誤。在Visual Studio 2012中打開的asp.net mvc3應用程序,無法找到程序集「EntityFramework」

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "EntityFramework". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. 

error CS0234: The type or namespace name 'Infrastructure' does not exist in the namespace 'System.Data.Entity' (are you missing an assembly reference?) 

error CS0246: The type or namespace name 'DbContext' could not be found (are you missing a using directive or an assembly reference?) 

error CS0246: The type or namespace name 'DbModelBuilder' could not be found (are you missing a using directive or an assembly reference?) 

error CS0246: The type or namespace name 'DbSet' could not be found (are you missing a using directive or an assembly reference?) 

EntityFramework.dll存在於bin文件夾和安裝的EntityFramework 5.0。這可以解決嗎?

我在遷移這個項目時做了什麼錯誤?微軟表示,從VS 2010到VS 2012 http://msdn.microsoft.com/en-us/library/vstudio/jj161050.aspx#ASP不需要任何修改。

+0

嘗試清理解決方案並重新構建它 – user9371102

+0

@nallacoder清理解決方案並沒有幫助。我在線閱讀的內容表明,EntityFramework.dll的版本可能有問題。 – Krypt

+0

Ofcourse,這將是一個錯誤,我認爲你可能做了所有這些,並在這裏發佈你的問題。但所有的命名空間在VS2012中仍然可用。東西embrassing – user9371102

回答

0

如果項目中有一個名爲packages.config的文件,請將其打開並刪除對EntityFramework的引用(類似<package id="EntityFramework" ... />)。也從項目中刪除對程序集的引用(選擇「參考」下的程序集並將其刪除),然後從bin文件夾中刪除程序集。

現在您可以使用軟件包管理器重新安裝軟件包(右鍵單擊該項目並選擇「管理NuGet軟件包」)。

+0

當我嘗試重新安裝EntityFramework時,出現許多「訪問路徑被拒絕」的錯誤,安裝失敗。我試圖通過以管理員身份運行Visual Studio來做到這一點,但仍然徒勞無功。 – Krypt

相關問題