预定义类型microsoft.csharp.runtimebinder未定义或未导入。

30

我在我的C#项目中使用了动态关键字,但我收到以下错误:

编译动态表达式所需的一个或多个类型未找到。

下面是我的代码,我们正在使用VS2013和.NET Framework 4.5.1。

dynamic cstmDocProp = (Microsoft.Office.Core.DocumentProperties)mScribeShell.ScribeShell.ActiveWordDoc.CustomDocumentProperties;  
string s = String.Empty;
s = Convert.ToString(cstmDocProp[mConstants.g_sPROPERTY_DOCUMENT_INDEX].Value);

我已经按照其他链接中建议的引用了Microsoft.Chasharp DLL和System.Core DLL。

在引用Microsoft.Csharp DLL之后,我遇到了另一个错误,即

预定义类型microsoft.csharp.runtimebinder未定义或未导入。


3
如果你觉得汤姆的回答有帮助,请接受它。 - Cobus Kruger
1个回答

72
  • 右键单击您的项目并选择“添加引用”。

  • 在“引用管理器”窗口中选择“程序集->框架”。

  • 添加选择Microsoft.CSharp.dll,然后单击添加。

希望这可以解决您的问题。


1
对我有用,在我的情况下,我将mvc 4升级到mvc5,然后出现了这个问题。 Nuget恢复了很多dll,然后解决了这个问题。谢谢。 - Yogurtu
所有的框架程序集已经被引用 - 这是我按照上述步骤后得到的信息。使用PCL时,找不到的类型是System.Object。 - Dagrooms

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接