【问题标题】:Error targeting .net core RC2 and .net4.6.1针对 .net core RC2 和 .net4.6.1 的错误
【发布时间】:2016-06-10 17:44:43
【问题描述】:

我有以下 project.json:

{
"version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.5.0-rc2-24027",
    "Dapper": "1.50.0-rc2b",
    "Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final",
    "System.Dynamic.Runtime": "4.0.11-rc2-24027",
    "Microsoft.CSharp": "4.0.1-rc2-24027"
  },

  "frameworks": {
    "netstandard1.5": {
      "imports": "dnxcore50"
    },
    "net461": {}
  }
}

现在,我收到以下警告,我宁愿不要

指定的依赖项是 System.Dynamic.Runtime >= 4.0.11-rc2-24027,但最终是 System.Dynamic.Runtime 4.0.10.0。

指定的依赖项是 Microsoft.CSharp >= 4.0.1-rc2-24027,但最终使用 Microsoft.CSharp 4.0.0.0。

从框架中删除 net461 解决了我的问题 - 但不是首选。

但是,现在我可以猜到为什么我会得到它们,这与那些不支持 net461 的库有关 - 虽然这对我来说似乎有点奇怪。

我尝试只使用旧版本 - 但随后我收到警告说 Dapper 期望使用新版本 - 有什么想法吗?

出于某种原因,将依赖项移动到每个框架(相同版本)也可以解决这个问题

【问题讨论】:

  • 我无法重现这一点,您的 project.json 不会对我产生任何警告。而且这两个包都支持net45
  • 奇怪,我设法用一个新的核心类库项目重现它
  • @gilmishal 我可以重现警告。但是为什么你仍然需要这些依赖项呢?引用 Dapper 将隐式添加它们。你能把它们删掉吗?
  • 删除这些会导致以下错误“缺少编译器所需的成员 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'”
  • 我怀疑有一个构建规则隐藏在某处想要说出来,因为已解决的程序集的版本号较低。真的是最好点击New Issue button

标签: c# .net dapper .net-core .net-4.6


【解决方案1】:

应在特定于框架的元素中指定特定于框架的依赖项。像这样:

{
  "version": "1.0.0-*",

  "dependencies": {
    "Dapper": "1.50.0-rc2b",
    "Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final",
    "System.Dynamic.Runtime": "4.0.11-rc2-24027"
  },

  "frameworks": {
    "netstandard1.5": {
      "dependencies": {
        "NETStandard.Library": "1.5.0-rc2-24027"
      },
      "imports": "dnxcore50"
    },
    "net461": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-rc2-24027"
      }
    }
  }
}

【讨论】:

    猜你喜欢
    • 2016-10-15
    • 2016-09-18
    • 2021-11-27
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    相关资源
    最近更新 更多