Mono corefx项目中的文件夹结构

Mono corefx项目中的文件夹结构,mono,dnx,.net-core,dnu,Mono,Dnx,.net Core,Dnu,我在这里试图了解corefx项目的文件夹结构。下面是System.IO文件夹在OS X中的显示方式 System.IO BLACKSTAR$ pwd /Users/BLACKSTAR/dotnet/corefx/src/System.IO sameer:System.IO BLACKSTAR$ tree . ├── System.IO.sln ├── ref │   ├── System.IO.Manual.cs │   ├── System.IO.cs │   ├── System.IO.cs

我在这里试图了解corefx项目的文件夹结构。下面是System.IO文件夹在OS X中的显示方式

System.IO BLACKSTAR$ pwd
/Users/BLACKSTAR/dotnet/corefx/src/System.IO
sameer:System.IO BLACKSTAR$ tree
.
├── System.IO.sln
├── ref
│   ├── System.IO.Manual.cs
│   ├── System.IO.cs
│   ├── System.IO.csproj
│   ├── bin
│   │   └── Debug
│   │       └── dotnet
│   │           ├── ref.dll
│   │           └── ref.xml
│   ├── project.json
│   └── project.lock.json
├── src
│   ├── Resources
│   │   └── Strings.resx
│   ├── System
│   │   └── IO
│   │       └── InvalidDataException.cs
│   ├── System.IO.csproj
│   ├── project.json
│   └── project.lock.json
这就是我想弄明白的

  • ref文件夹中有什么
  • src文件夹中有什么
  • ref和src之间有什么联系
  • Ref的目标是dotnet,而Src的目标是dnxcore50框架。这意味着什么
  • 我能够在ref文件夹中构建项目,但是我无法使用dnu build在src中构建项目,尽管dnu restore运行成功。我做错了什么

  • 这里您看到的是一个名称空间的NuGet包,它实际上是CLR的一部分。有些型号很早就需要了。。。与文件io和基本数据类型类似,因此它们是CLR发行版的一部分。您可以在核心CLR github项目中找到这些

    所以

  • Ref是设计时的空实现。它们是用来定义类型的
  • SRC是基于dnxcore5的实现。。。基本上是空的
  • 参考vs SRC。。。。Ref用于查找类型。。。绑定到实现(在coreclr或mscorlib中)由某些PCL类型的转发完成
  • SRC是coreclr的伪实现。也许只是缺少的类型。Ref的目标是dotnet,因为所有现代SDK都有System.IO的类型转发
  • 我不知道它们是如何建造的
  • 很抱歉遗漏了细节。MS没有很好的记录

    sameer:System.IO BLACKSTAR$ dnvm list
    
    Active Version              Runtime Architecture OperatingSystem Alias
    ------ -------              ------- ------------ --------------- -----
           1.0.0-beta7          coreclr x64          darwin          
      *    1.0.0-beta7          mono                 linux/osx       default
    
    sameer:System.IO BLACKSTAR$