当定位“dotnet”时,我应该如何在project.json中定义“dependencies”和“frameworkAssemblies”

时间:2015-09-16 23:56:16

标签: asp.net-core dnx

基于this,基本上我理解的是,假设依赖库lib预先安装了框架,我应该使用frameworkAssemblies但如果不是,那么在这种情况下需要拉按包管理器来源,您应该使用dependencies

我的问题是,如果我定位的dotnet基本上是“I’m compatible with any targets that my dependencies are, check those.”,那么我应该如何定义对System.Threading.Tasks的引用呢?

如果我放了

"frameworks": {
    "dotnet": {
      "dependencies": {
        "System.Threading.Tasks": "4.0.10"
      }
   }
}

这是否意味着在针对完整的.NET框架运行时,它将使用捆绑的库而不是GAC的库?

如果我使用

"frameworks": {
    "dotnet": {
      "frameworkAssemblies": {
        "System.Threading.Tasks": "4.0.10"
      }
   }
}

这是否意味着如果我发布我的网站,它将不包含 System.Threading.Tasks 包?

更新:我觉得我在这里感到困惑。我试过的时候

"dependencies": {
    "EntityFramework.SqlServer": "7.0.0-beta7"
},

"frameworks": {
    "dotnet": { }
}

我希望它能够编译。目标框架将被限制为“EntityFramework.SqlServer”(net45,dnxcore50)的目标。但这不起作用,而是我收到The dependency EntityFramework.SqlServer 7.0.0-beta7 in project xxx does not support framework .NETPlatform,Version=v5.0错误。看起来使用dotnet是仅用于定位BCL的名字。

1 个答案:

答案 0 :(得分:2)

基于我通过尝试不同的project.json组合发现的结果,事实证明dotnet可能只是.NET平台本身的绰号所以为了回答我的问题,我认为这样做的方法是:

"net45": {
    "frameworkAssemblies": {
        ...
    }
},
"dnx451": {
    "frameworkAssemblies": {
        ...
    }
},
"dotnet": {
    "dependencies": {
        ...
    }
}

这与dotnet应该修复的目标相矛盾?我希望团队成员能够对此有所了解。