[筆記]編譯時遇到 無法載入 System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider 錯誤的解決方法
- 2011-02-01
- 22057
- 0
因為 demo 有個習慣上正式機的檔案都是使用「Release」來編譯,今天要上線時卻發生了編譯錯誤 【錯誤 17 無法載入型別 'System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider'。 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config 129 】這錯誤訊息看起來就了解到是因為 ASP.NET 4.0 的變化,知道了方向一切就好辦了。
首先錯誤的是長這樣的
解決的方式十分容易,既然他無法載入那就告訴他要載入誰就好了,開啟你的 Web.config找到下面這段
<compilation debug="true" targetFramework="4.0">
在下方增加一個 assembly 讓他變成這樣
<add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
這樣子再編譯就不會出錯誤囉。
最後說明一下為什麼 demo 都會使用 Release 來發佈,其實他和 Debug 模式的最大差別就是移除了偵錯所需的程式碼和有針對程式碼最佳化,所以 demo 才會都用 Release 來發佈,如果你想更深的了解Release 和Debug 兩者的差異可以參考下面的文章。
回應討論