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

C# 未定义或导入预定义类型microsoft.csharp.runtimebinder,c#,C#,我在我的C#项目中使用了dynamic关键字。我得到下面的错误 找不到编译动态表达式所需的一个或多个类型 下面是我的代码,我们将VS2013与.NET Framework 4.5.1一起使用 dynamic cstmDocProp = (Microsoft.Office.Core.DocumentProperties)mScribeShell.ScribeShell.ActiveWordDoc.CustomDocumentProperties; string s = String.Empty

我在我的C#项目中使用了dynamic关键字。我得到下面的错误

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

下面是我的代码,我们将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

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

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

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


希望这能解决您的问题。

对我来说很有效,在我的情况下,我将mvc 4升级到mvc5,这个问题就解决了。Nuget恢复了很多DLL,然后用这个来解决问题。谢谢。所有的框架程序集都已经被引用了——这是我按照上面的步骤得到的消息。使用PCL时,找不到的类型是System.Object。如果您认为Tom的答案很有用,请接受它。