我们可以在Github上面直接查看ASP.NET Core 3.x的源代码,但是我们也可以把源代码下载下来进行查看。

而下载源代码进行查看有很多好处:

  • 任意的导航源代码
  • 内置了一个示例项目
  • 直接调试源代码

下载源代码

想下载并配置好源码,你需要:

  • 最新版的Visual Studio 或者其它IDE
  • Git 和 nodejs
  • clone仓库
  • 运行一些脚本

ASP.NET Core 3.x的官方仓库地址为:https://github.com/dotnet/AspNetCore

使用git将其clone到本地:

git clone --recursive https://github.com/dotnet/aspnetcore.git

注意这里需要加 --recursive,这样可以把依赖项一同下载。

 

配置源码

clone好源码之后,使用命令行进入该文件夹然后执行git tag,查看tag版本:

这里我们使用的是v3.1.2版本。

如果你想查看其它分支版本的话,可以执行类似的命令:

配置项目

我们可以直接用VS将项目的解决方案打开,但是,这里面有一个Visual Studio安装的Powershell脚本,它很强大,我们可以先运行它试试效果:

如果你运行InstallVisualStudio.ps1文件的话,它会打开Visual Studio Installer,并且会勾选上所有运行该源代码所需要安装的选项。

在Windows Explorer里以管理员身份打开Powershell:

打开PS之后,如果你输入文件名的前一部分:

然后按tab,就会自动补齐该文件名:

然后先别执行,还需要一些参数:

-edition 参数表示VS的版本,默认是企业版,企业版可以不加这个参数。但是如果你是communiy版的话,就需要添加这个参数。

然后执行该脚本:

如果出现这个错误,说明不允许运行这个脚本。

这时候我们可以采取一个临时的解决办法就是输入这个命令,然后输入A,按回车:

然后再次执行该脚本:

稍等一下会弹出Visual Studio Installer:

点击继续,会下载并安装一些依赖项:

然后会出现下面选择安装组件的窗口,并且把需要安装的组件都自动勾选上了:

这时你只需要点击modify按钮去安装就可以了。装完之后关闭就可以了。

这样做的好处是,你不需要手动去挨个安装需要的组件,而且不会出错。

Restore

下面需要进行restore脚本,它会下载所有编译所需的第三方库或依赖项等等。在仓库的根目录,命令行执行:

这个可能需要一点时间。

安装完之后就可以打开里面的具体项目文件了,但是不要直接点击sln文件。

打开MVC项目的源码

如果你想打开MVC项目的源码,请进入src/MVC目录:

暂时先别打开Mvc.sln,还是使用运行脚本的方式来开启解决方案。

按住Shift+鼠标右键点击Mvc.sln文件:

点击菜单里的Copy as path。

回到命令行,在项目根目录执行下面的命令(把复制的路径贴进去,并去掉双引号):

这样打开项目的时候,会针对这个版本的源代码设置一些需要的环境变量来引用正确的.NET依赖项。

打开项目也需要很长的时间:

项目打开后,可以先Build一下,如果成功了,那就可以正常的浏览、调试、修改代码了。

以正确的方式下载和配置 ASP.NET Core 官方源码的更多相关文章

  1. ASP.NET Core MVC 源码学习:MVC 启动流程详解

    前言 在 上一篇 文章中,我们学习了 ASP.NET Core MVC 的路由模块,那么在本篇文章中,主要是对 ASP.NET Core MVC 启动流程的一个学习. ASP.NET Core 是新一 ...

  2. ASP.NET Core 框架源码地址

    ASP.NET Core 框架源码地址 https://github.com/dotnet/corefx 这个是.net core的 开源项目地址 https://github.com/aspnet  ...

  3. asp.net core启动源码以及监听,到处理请求响应的过程

    摘要 asp.net core发布至今已经将近6年了,很多人对于这一块还是有些陌生,或者说没接触过:接触过的,对于asp.net core整个启动过程,监听过程,以及请求过程,响应过程也是一知半解,可 ...

  4. ASP.NET Core MVC 源码学习:Routing 路由

    前言 最近打算抽时间看一下 ASP.NET Core MVC 的源码,特此把自己学习到的内容记录下来,也算是做个笔记吧. 路由作为 MVC 的基本部分,所以在学习 MVC 的其他源码之前还是先学习一下 ...

  5. ASP.NET Core MVC 源码学习:详解 Action 的激活

    前言 在 上一篇 文章中,我们已经学习了 ASP.NET Core MVC 的启动流程,那么 MVC 在启动了之后,当请求到达过来的时候,它是怎么样处理的呢? 又是怎么样把我们的请求准确的传达到我们的 ...

  6. ASP.NET Core MVC 源码学习:详解 Action 的匹配

    前言 在 上一篇 文章中,我们已经学习了 ASP.NET Core MVC 的启动流程,那么 MVC 在启动了之后,当请求到达过来的时候,它是怎么样处理的呢? 又是怎么样把我们的请求准确的传达到我们的 ...

  7. ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 是对 ASP.NET 有重大意义的一次重新设计.本章节我 ...

  8. ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Windows 环境配置 ASP.NET Core ...

  9. 用"hosting.json"配置ASP.NET Core站点的Hosting环境

    通常我们在 Prgram.cs 中使用硬编码的方式配置 ASP.NET Core 站点的 Hosting 环境,最常用的就是 .UseUrls() . public class Program { p ...

随机推荐

  1. 导出Wireless组中的成员

    get-adgroupmember -Identity wireless  |export-csv -path C:\Group.csv -Encoding UTF8

  2. Java 集合的迭代方式

    集合的迭代流使得程序员得以站在更高的抽象层次上对集合进行操作.传统的迭代方法直接看代码: List<Dog> dogs = new ArrayList<>();        ...

  3. 3dmax2016卸载/安装失败/如何彻底卸载清除干净3dmax2016注册表和文件的方法

    3dmax2016提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装3dmax2016失败提示3dmax2016安装未完成,某些产品无法安装,也有时候想重新安装3 ...

  4. cs231n spring 2017 lecture2 Image Classification

    1. 相比于传统的人工提取特征(边.角等),深度学习是一种Data-Driven Approach.深度学习有统一的框架,喂不同的数据集,可以训练识别不同的物体.而人工提取特征的方式很脆弱,换一个物体 ...

  5. 深入JVM内核--GC算法和种类

    GC的概念 Garbage Collection 垃圾收集 1960年 List 使用了GC Java中,GC的对象是堆空间和永久区 引用计数法 老牌垃圾回收算法 通过引用计算来回收垃圾 使用者 CO ...

  6. [LC] 389. Find the Difference

    Given two strings s and t which consist of only lowercase letters. String t is generated by random s ...

  7. 使用 Commitizen 撰写 Angular 规范的 commit message

    本文为原创文章,转载请标明出处 目录 安装及配置 使用 1. 安装及配置 npm install -g commitizen npm install -g cz-conventional-change ...

  8. Luogu_1966_火柴排队

    题目描述 涵涵有两盒火柴,每盒装有\(n\)根火柴,每根火柴都有一个高度. 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为:$ \sum (a_i-b_i)^2 ...

  9. Linux中的一些点

    前言 本文记录一些日常使用linux的一些点. 系统负载评估 理解Linux系统负荷 查看 ps -ef [root@deployer ~]# ps -ef UID PID PPID C STIME ...

  10. 这些科学家用DNA做的鲜为人知事,你估计都没见过!

    DNA世界的每一步都给人类带来奇妙甚至吃惊的发现.研究人员越来越多地探索和掌握了生命中的分子.生物与技术之间的界限以前所未有的方式模糊,有时甚至更糟.但DNA也为复杂疾病带来简单的答案,存储奇怪的文件 ...