摘要:这篇文章是开源公共组件的开篇那就先说说项目的 Github 目录结构和 .Net Core 的项目结构。1. GitHub 目录结构和相关文件 - src 源码项目目录。 - test 单元测试项目目录。 - tools 工具目录。 - .gitignore 你想要忽略的文件或者目录(一些文件诸如 *.dll、testResults 等
这篇文章是开源公共组件的开篇那就先说说项目的 Github 目录结构和 .Net Core 的项目结构。
1. GitHub 目录结构和相关文件
 
- src 源码项目目录。
- test 单元测试项目目录。
- tools 工具目录。
- .gitignore 你想要忽略的文件或者目录(一些文件诸如 *.dll、testResults 等 不需要提交到 github 上的文件)详情:https://git-scm.com/docs/gitignore。
- .gitattribute 用于设置文件的对比方式(常用非文本文件)详情:https://git-scm.com/docs/gitattributes。
2. 项目解决方案目录结构和相关文件。

- src/Common 公共类库。
- src/Common.Abstractions 公共类库抽象。
- src/Common.JsonNet.JsonSerializer 公共类库 Json.Net 组件序列化者。
- test/Common.JsonNet.JsonSerializer 公共类库 Json.Net 组件序列化者单元测试。
- test/Common.Test 公共类库单元测试。
3. ASP.Net Core 类库项目结构。
  
- Common.xproj 类库项目文件。
- project.json .Net Core 项目新增文件,用于记录项目的基本信息以及组件依赖等。
project.json 文件解析
大家先看一下 Common 这个项目的 project.json 这个文件。
{
"version": "0.1.1-Beta",
"title": "Wlitsoft.Framework.Common",
"copyright": "Wlitsoft 2012 - 2016",
"description": "Wlitsoft 框架 - 公共类库",
"authors": [ "LILIANG" ],
"language": "zh-CN",
"packOptions": {
    "repository": {
    "type": "git",
       "url": "git://github.com/wlitsoft/common"
    },
    "tags": [
      "common",
       "wlitsoft",
       "framework"
     ]
   },
   "dependencies": {
     "Common.Abstractions": "0.1.1-Beta",
     "NETStandard.Library": "1.6.0",
     "System.Runtime.Serialization.Json": "4.0.2",
     "System.Xml.XmlSerializer": "4.0.11"
   },
   "buildOptions": {
     "outputName": "Wlitsoft.Framework.Common",
     "keyFile": "../../tools/Wlitsoft.Framework.snk",
     "nowarn": [ "CS1591" ],
     "xmlDoc": true
   },
 
   "frameworks": {
     "netstandard1.6": {
       "imports": "dnxcore50"
     }
   }
}解析:
- version 项目版本号。
- title 项目名称。
- copyright 项目版权信息。
- description 项目描述。
- authors 作者。
- language 语言。
- packOptions 包的一些定义选项比如仓库地址、Nutget 包配置等。
- dependencies 项目的依赖的组件。
- buildOptions 编译时的选项。
- outputName 输出 dll 的名称(常用)。
- keyFile 组件签名文件路径。
- xmlDoc 是否输出 xml 的开关。
 
                 
 
 
  
            