即时窗口中的动态导致“Microsoft.CSharp.RuntimeBinder.Binder”未定义或导入错误

Posted

技术标签:

【中文标题】即时窗口中的动态导致“Microsoft.CSharp.RuntimeBinder.Binder”未定义或导入错误【英文标题】:Dynamic in the immediate window causes 'Microsoft.CSharp.RuntimeBinder.Binder' is not defined or imported error 【发布时间】:2012-11-14 01:12:12 【问题描述】:

如果我在 Visual Studio 的即时窗口中使用 dynamic 会出现错误

未定义或导入预定义类型“Microsoft.CSharp.RuntimeBinder.Binder”

我该如何解决这个问题?

【问题讨论】:

我知道你的问题很久以前就被问过了,但请检查我的回答是否解决了这个问题......帮助其他人也有这个问题。 【参考方案1】:

您应该在所选项目或启动项目中添加对 Microsoft.CSharp 库的引用。并且您的项目应该引用 .NET Framework 4 或更高版本。

MSDN about immediate window context:

在为设计时表达式评估建立上下文时, Visual Studio 引用解决方案中当前选择的项目 探险家。如果在解决方案资源管理器中未选择任何项目,则 Visual Studio 尝试根据启动项目评估函数。 如果无法在当前上下文中评估该函数,您将 收到错误消息。

【讨论】:

我该怎么做?我正在使用“即时窗口” 您在某个项目的环境中使用即时窗口。您应该添加对此项目的引用。 这也适用于调试监视窗口。我有一个启动项目的解决方案,它没有引用Microsoft.CSharp,但引用了另一个确实的项目。监视窗口会抛出“未定义或导入的绑定器”异常。在 startup 项目中添加了对 Microsoft.CSharp 的引用,一切都很好。 在当前选定的项目中引用它似乎不起作用。我对 System.Data 有同样的问题,它被引用,但在即时窗口中找不到。可能只在调试会话期间有效?我正在使用它来调用静态方法而不启动调试会话。【参考方案2】:

有两点很重要。检查以下内容:

    您的项目属性引用 .NET Framework 4 或更高版本(如果不是这种情况,请更改它:右键单击项目,选择“属性...”菜单项,然后选择作为目标框架“.NET Framework 4”(或更高版本)) 您已添加 "Microsoft.CSharp" 程序集 作为参考(请注意,需要重新加载项目的步骤 1. 必须先完成才能执行此操作)李>

之后您可以使用dynamic 类型。需要将引用添加到所选项目或启动项目中,以便在即时窗口的范围内可用。


注意:Here我发现了一篇很好的文章,介绍了 C# 中的动态,它是如何工作的以及你可以用它做什么。

【讨论】:

投了赞成票,挂在单元测试项目上,没有引用“Microsoft.CSharp”程序集【参考方案3】:
    转到项目->添加参考。 从侧边栏和框架中选择程序集 检查 Microsoft.CSharp

编码愉快!

【讨论】:

别忘了点击确定【参考方案4】:

命名空间:Microsoft.CSharp.RuntimeBinder

程序集:Microsoft.CSharp(在 Microsoft.CSharp.dll 中)

示例http://stepbystepdotnet.wordpress.com/2012/08/06/predefined-type-microsoft-csharp-runtimebinder-binder-is-not-defined-or-importedtestproject1/

http://msdn.microsoft.com/en-us/library/microsoft.csharp.runtimebinder.binder%28v=vs.110%29.aspx

http://msdn.microsoft.com/en-us/library/microsoft.csharp.runtimebinder%28v=vs.110%29.aspx

【讨论】:

以上是关于即时窗口中的动态导致“Microsoft.CSharp.RuntimeBinder.Binder”未定义或导入错误的主要内容,如果未能解决你的问题,请参考以下文章

xml TRI尊重CD动态配置。一个webapp中的Muliple网站即时设置!

xml TRI尊重CD动态配置。一个webapp中的Muliple网站即时设置!

即时通讯开发之详解TCP/IP中的IP选路动态选路

即时通讯开发之详解TCP/IP中的IP选路动态选路

关闭即时窗口 - VBA

在即时窗口中显示异常信息和 Debug.Print() 消息