我试图在Microsoft Visual C#2010中编译此代码
using System;
using System.Globalization;
class main
{
static void Main()
{
dynamic d;
d = "dyna";
Console.WriteLine(d);
}
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了这两个错误
错误1未定义或导入预定义类型"Microsoft.CSharp.RuntimeBinder.Binder"
错误2无法找到编译动态表达式所需的一种或多种类型.您是否缺少对Microsoft.CSharp.dll和System.Core.dll的引用?
我读了这篇文章,但我是C#的新手,我无法理解究竟是什么问题.特别是这些所谓的.config文件是什么和在哪里..
M. *_*ara 584
您的解决方案资源管理器窗口,右键单击要引用,选择Add Reference,转到.NET选项卡,找到并添加Microsoft.CSharp.
Chr*_*ain 21
确保您的项目针对.NET framework 4.0.Visual Studio 2010也支持.NET 3.5框架目标,但.NET 3.5不支持该dynamic关键字.
您可以在项目属性中调整框架版本.见http://msdn.microsoft.com/en-us/library/bb398202.aspx获取更多信息.
我有同样的问题,除了删除和添加引用后没有修复错误,所以我将.Net版本更改4.5为4.5.1.
要实现此目的,请转到您的web.config文件并更改以下行
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
Run Code Online (Sandbox Code Playgroud)
对此
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
Run Code Online (Sandbox Code Playgroud)
并重建.
ViewBag下面的红线是我头痛的3个月).只需从项目中删除Microsoft.CSharp引用,然后再次添加.