c# - 构建“.Net Standard”项目时——这是什么意思?
问题描述
由于 .net 标准不是一个实现,它只是一组规则,当一个 .net 标准的 Class-Library 项目构建时会发生什么?
我认为只能构建一个 .net 框架或 .net 核心(等)项目(其中可以包含一个 .net 标准类库的文件)。然而,完全可以将 .net 标准类库构建为一个项目。
解决方案
(只是部分答案)
查看展开Dependencies节点时显示的内容:
.NET Standard 库最终会选择一个实现,在本例中是 .NET Core。
现在为什么 .NET Core 而不是 .NET Framework 呢?
我猜是因为它与平台无关,因此符合 .NET Standard 的关于开放性的范式,而 .NET Framework 则不能这样说。
netstandard.dll 的目的是什么?
当您在您选择的反编译器中打开它时,您将看到数以千计的TypeForwardedTo
属性,即它的作用是将 .NET Standard 类型转发给一个实现。
此外,有趣的是,它甚至不是由 Microsoft 编写的,而是由 Mono 开发团队编写的。
推荐阅读
- amazon-web-services - AWS CloudWatch Logs Insights - 按 API 资源名称对日志进行分组并进行聚合
- snakemake - 为使用 report() 函数的规则使用包含在 snakemake 中时的工作目录
- c# - 如何处理类型域模型中的可选数据?
- c++ - 翻译 *.rc 文件在使用 JP 字体时会影响按钮大小(MS UI Gothic,9)
- r - 在 Excel 文件中重新分配数据
- git - 检测 git branch 只触及特定路径
- microsoft-graph-api - Microsoft Graph OneNote Patch API 删除补丁后的图像
- puppeteer - 如何将 Chrome 添加到容器以克服 circleCI 中的错误“无法启动 chrome”
- react-native - VS Code 实时分享反应原生?
- c++ - 为什么使用多重继承时我的 Hippomock 期望失败