即时窗口中的动态导致“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网站即时设置!