【发布时间】:2016-06-02 07:58:32
【问题描述】:
我正在着手改写一组框架库以使用 .NET Core。以为我会等待 RC2 并热衷于陷入困境。
我借此机会近距离接触构建系统、配置、从头开始编写所有内容,以便更深入地了解并且没有我不想要/不需要的不必要的包袱。然而,缺乏文档使这变得相当困难..所以我想在这里问一下,毫无疑问聪明的 .NET Core 人藏在哪里;)
我知道这个问题很长并且有很多子问题。但我觉得可以通过一个文档链接或知情人士的几行简明来回答。感谢您对我的包容,我希望这可能成为其他人的有用答案资源,试图了解 .NET Core 的好方法。
首先,global.json。我希望在同一个“解决方案”中有多个项目和组件。通过另一个 SO 问题,我发现了这个隐藏链接:http://dotnet.github.io/docs/project-model/global-json-reference.html - 但似乎没有 VS 工具可以从头开始设置或使用它。
1) global.json 问题
A) 这些文档指的是什么构建系统? dotnet build? (帮助说明它只是构建一个项目——如果它是“解决方案”——如果它仍然是这个名称——它是否只是在所有子文件夹上运行dotnet build?)。
B) 周围的许多示例都有 "sdk" 属性 - 但 EF Core 没有它,而且新的“单句样式”文档也没有引用它。 The official RC2 migration guide for ASP.NET Core has it 还在吗?如果是这样,为什么需要它?它有什么用?它有哪些选择?
接下来是project.json 和框架。我想了解这里的框架选项。有清单吗?官方指导? dotnet new 使用 netcoreapp1.0; "official docs" 使用 dnxcore50 和 this GH discussion from last month 的示例也提出了 netcore1.0 作为框架(与应用程序)的可能性的问题。
此外,imports。我对命名感到非常困惑 - 文档说这是该项目兼容的其他框架的列表..
2) project.json 框架问题 -
A) 我在哪里可以找到有关框架选项的最新或维护列表或一组建议?
B) 如果我对import 用途的理解是正确的,为什么会这样命名?如果不是,它究竟导入了什么?
C) 为什么每个framework 属性都有一个import 属性?如果要表明整个项目与另一个框架兼容,那似乎最好放在project.json的顶层,不是吗?
D) 我应该如何决定应该使用哪些import 选项? dotnet new 刚刚拥有dnxcore50 - 需要满足哪些包? This guy 建议 dotnet5.6、dnxcore50 和 portable-net45+win8!
最后,我正在构建类库、测试项目、控制台实用程序。所以..
3) 参考资料和软件包
A) 按照dotnet new,我是否总是想要Microsoft.NETCore.App?还有其他基线选项吗?选择指导?一份清单?
B) 文档没有提及type 选项(build、platform)。有没有关于这些的指导?
C) 我的一些项目将使用 ASP.NET。在哪里找到正确的参考包的最佳位置? NuGet 上似乎有一百万个版本和包。 This tutorial 只是谈论引用 Microsoft.AspNetCore.Server.Kestrel - 唯一引用的 ASP.NETty 事物是 Microsoft.AspNetCore.Hosting。这是否意味着一个包大部分是 ASP.NET?
【问题讨论】:
-
我也觉得很乱。
-
在这些问题上做得很好。我知道微软已经迫于压力要尽可能快地推出 RC2,并且文档可能会随着时间的推移而趋于完善,但到目前为止,文档看起来并没有对人们实际遇到的问题做出回应。由于除非绝对必要并且即将在一个月内发货,否则它们都不应再更改,因此我希望他们尽快开始填写文档。
-
一个简短的说明,不要把它读成呻吟——这只是我想知道的东西,而且似乎相当“基线”来理解。我很想编译答案并写一篇“从头开始的.NET Core”博客文章。例如,每个 .json 文件的每一行都解释了它的含义、为什么需要它。
-
回答你所有的问题需要一辈子的时间,所以我宁愿留下评论,让你等到工具(目前处于预览版 1)变成 RTM(几个月后)。绝对核心运行时(.NET Core)将在本月底(6 月)之前为 RTM,但微软在工具部分进行了另一系列更改(从 .json 尝试移回 MSBuild),所以即使有人花给你一些答案的时间,它们很快就会过时(就像你参考的文档一样)。 RC1之后我跳上了船,我已经很累了。
标签: asp.net-core .net-core .net-core-rc2