【问题标题】:Using dynamic in .NET Standard library [duplicate]在 .NET Standard 库中使用动态 [重复]
【发布时间】:2018-10-26 09:11:17
【问题描述】:

这个问题已经让我发疯了一段时间,我正在我的库的一部分中使用动态类型(针对 .NET Standard 1.2 和 2.0 + .NET Framework 3.5)。我添加了对 Microsoft.CSharp 的引用,它已正确添加到我的项目的 .NET Standard 版本中(Microsoft.CSharpSystem.Runtime.Binding 在 v1.2 中,Microsoft.CSharp 在 v2.0 中)。

从浏览网页来看,这似乎足以让事情正常进行,但我不断收到错误消息:

缺少编译器所需的成员“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”

在 .NET Standard 2.0 版本中。

我尝试过无数次项目清理和重建,使用各种不同版本的 Microsoft.CSharp,手动将 System.Runtime.Binding 添加到 v2.0 中,无论我尝试什么,它仍然不断出现相同的错误。有没有人对尝试的事情有任何进一步的建议?

亲切的问候 詹姆斯

【问题讨论】:

    标签: c# .net dynamic .net-standard


    【解决方案1】:

    dynamic 关键字是在需要 .NET Framework 4.0 的 C# 4.0 中引入的,您的目标是 .NET 3.5,因此动态关键字不可用。

    【讨论】:

    • 啊,哎呀,应该考虑检查一下。没有帮助 Visual Studio 给我一个红鲱鱼说问题出在我的标准构建上。我会尝试将框架版本更新到 4.0,看看是否有帮助。谢谢
    • 您实际上可以针对 4.5.1 版本,因为 .NET Standard 1.2 与 .NET 4.5.1 兼容,这将使您能够使用 C# 5
    • 我实际上是故意将它设置为一个非常旧版本的 .NET 框架,因为我知道有些用户卡在框架 4.0 上,目标 3.5 只是为了在我支持的范围内扩大网络。根据我自己的理解,如果我已经以 .NET Standard 1.2 为目标,那么也以 4.5.1 为目标有什么好处吗?我不是已经隐含地瞄准了它,因为我瞄准的是相应的 .NET 标准版本吗?
    猜你喜欢
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 2017-07-04
    • 2017-01-06
    相关资源
    最近更新 更多