MVC5 EF6.1.3 遇到找不到中繼資料檔 EntityFramework.dll的問題

昨天卡在一個新增ADO.NET Entity Data Model後的問題很久...
我的環境是VS2013 update 4 RC,想用MVC5 + EF6做出一個小專案。

Build失敗且產生了下列錯誤訊息:

Compiling transformation: 找不到中繼資料檔 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools..\IDE\EntityFramework.dll'

另外還有Model.tt也發生錯誤情況 打開來看發現檔案只出現一行:ErrorGeneratingOutput

網路上找資料有人反映說這是VS2013的bug...因為有個系統環境變數:%VS120COMNTOOLS% 內的值不對了。

後來我在電腦內嘗試去找這顆entityframework.dll 發現在我的路徑上是 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\entityframwork.dll

所以就把環境變數:%VS120COMNTOOLS% 修正重新開機,後來又發現不行...依然顯示這個錯誤,仔細看了訊息中的相對路徑,才發現要改成 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7 最後才成功。

這問題困擾了我一下,跟之前MVC5+EF5的使用上不同,所以若有人遇到以上問題,還是要仔細觀察一下VS2013安裝到哪個路徑上才比較準確。

model.tt 是靠C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\entityframework.dll運作的,把握這個重點就好了。

P.S.:
  1. 如果沒找到這個dll那又是另外一個問題了,若有朋友遇到這樣情況請再通知我。
  2. 失敗後不用整個移除.edmx,只要將.Context.tt, .tt檔案移除後,回到.edmx上按下右鍵 Add Code Generation Item...後,再新增EF 6.x DbContext Generator就可以了。


Cheers.