我正在尝试在可移植类库中使用.NET 4的动态类型,但是我无法获得所有必需的引用。我可以参考System.Core就好了,但是Microsoft.CSharp给了我一些麻烦。好像我需要添加所有不同版本的Microsoft.CSharp.dll作为我的项目的引用,但Visual Studio允许我只添加一个;如果我添加另一个,我得到一个错误,说它已被引用。我不能只使用其中一个编译 - 如果我引用Windows,我得到:
缺少编译器所需的成员'Microsoft.CSharp.RuntimeBinder.Binder.InvokeMember'
当我尝试构建项目时。如果我引用Silverlight,那么引用似乎因某种原因无效 - 它在解决方案资源管理器的引用列表中有一个黄色警告图标!
那么有什么方法可以在不破坏我的项目或将其转换为非可移植库的情况下引用这两个DLL?
谢谢!
答案 0 :(得分:3)
您无法创建利用.NET 4.0中的dynamic
keyword的可移植库。
Support for dynamic types in portable libraries was added in .NET 4.5
在.NET 4.0中,您必须使用Reflection才能进行要进行的调用(如果无法升级到4.5)。