如何创建.net核心类库

And*_*ira 2 .net c# .net-core .net-core-rc2 .net-standard-1.5

我是.net核心的新手.我需要一些帮助来配置我的project.json文件来创建一个带.net核心的类库.我实际上阅读了很多文档,但是由于有大量的东西需要阅读,我很遗憾.我知道我必须使用NETStandardLibray(https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md),但我不知道怎么把它放进去我的config.json文件.

这是我的config.json文件:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0-rc2-3002702"
    },
    "xunit": "2.1.0",
    "dotnet-test-xunit": "1.0.0-rc2-build10025"
  },
  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dnxcore50",
        "portable-net45+win8"
      ]
    }
  },
  "testRunner": "xunit"
}
Run Code Online (Sandbox Code Playgroud)

我想构建一个简单的类库,以便在另一个项目中重用,我也希望它有单元测试.

我在这里的主要困难是关于绰号.他们真是一团糟.我只是想构建一个可以在任何平台上使用的类库,但看起来我必须在我的project.json中选择平台.在已弃用的标记列表中,我不知道我应该使用什么名字.为了使用NET标准库,我应该将具有nuget标识符netcoreapp1.0的平台.NET Standard Application 1.5作为目标,还是应该使用具有nuget标识符netstandard1.3的平台.NET Platform 5.0?什么是正确的平台?NETStandard Library不应该与平台无关吗?我应该将这些标识符放在我的project.json的依赖项或框架部分中吗?那两个部分的区别是什么?我完全迷失了:(

Jon*_*eet 6

你的类库本身应该有netstandard1.3你想要的框架或任何你想要的版本 - netstandard1.3例如Noda Time的目标,因为我发现netstandard1.0不幸的是遗漏了太多.我一般会选择你的信心最低的版本,你希望netcoreapp1.0等,因为你正在编写一个库,而不是应用程序.

您的单元测试应该在一个单独的项目中,根据xUnit文档进行配置- 例如,定位netcoreapp1.0,也net451可以在桌面框架上运行.

为了回答您的其他问题,虽然.NET标准库与平台无关(在操作系统方面),您仍然需要表达您所依赖的版本 - 如果您需要的东西只是在netstandard1.5,您无法定位netstandard1.3,例如.

关于Microsoft.NETCore.App在依赖性部分中包含etc的部分是(据我所知),以避免必须以模块化方式单独指定每个依赖项.这是一种简单的入门方式,但您可能稍后想要更具体,将依赖项仅修改为您需要的依赖项.

还有很多东西还在播出,还有很多文档要写,还有很多过去几年的文档和博客文章......但是正在取得进展.