错误定位.net核心RC2和.net4.6.1

时间:2016-06-10 17:44:44

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

我有以下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期望更新版本的那些 - 任何想法?

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

1 个答案:

答案 0 :(得分:2)

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

{
  "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"
      }
    }
  }
}