2013-10-01 49 views
3

我在Visual Studio 2012的一個大問題每當我開始一個ASP.Net MVC4項目,我得到了以下錯誤:的Visual Studio 2012無法編譯動態表達式和模型類型

Cannot convert lambda expression to type 'System.Linq.Expressions.Expression<System.Func<Carrousel.Web.ViewModels.LoginViewModel,bool>>' because it is not a delegate type 

One or more types required to compile a dynamic expression cannot be found. Are you missing a reference? d:\Visual Studio\Projects\School\Carrousel v2\Carrousel.Presentation\Views\Account\Login.cshtml 

The type arguments for method 'System.Web.Mvc.Html.InputExtensions.TextBoxFor<TModel,TProperty>(System.Web.Mvc.HtmlHelper<TModel>, System.Linq.Expressions.Expression<System.Func<TModel,TProperty>>)' cannot be inferred from the usage. Try specifying the type arguments explicitly. 

這種情況發生時在cshtml文件中有ViewBag和Html Form Helpers等動態表達式。

我一直在尋找一段時間,唯一的原因是我可以找到如果Microsoft.CSharp和/或System.Core沒有被引用。不過,我在項目中都引用了這兩個參數。

這個問題只發生在使用Asp.Net Mvc 4時,使用Mvc 3時一切正常。我的Windows 7和Windows 8 Enterprise版本都出現此錯誤。我也嘗試通過軟件包管理器卸載並重新安裝mvc4。

+0

這是一個重複? http://stackoverflow.com/questions/12782951/c-sharp-dynamic-types-break-when-upgrading-to-visual-studio-2012?rq=1 – rene

回答

0

嘗試刪除,和添加引用以下組件:

Microsoft.Scripting.Core.dll 
    Microsoft.CSharp 

隨着

CopyToLocal = true 
相關問題