在Windows系统中构建还原ASP.NET Core 源码
大家好,这几天试着从Github上拉取AspNetCore的源码,尝试着通过Visual Studio 打开,但是并不尽人意。我们需要去构建我们拉去的源代码,这样才可以通过VisualStudio可还原的项目。毕竟AspNetCore是一个巨型的项目集。
先决条件
在Windows中构建AspNetCore源码的要求有以下硬件需求。
- Windows 10版本1803或更高版本
- 至少10 GB的磁盘空间和良好的网络(我们的构建脚本下载了很多工具和依赖项)
- Visual Studio 2019 (因为所需C++某些运行库,就算你的Windows中有先决条件的Visual Studio ,你有时也不会勾选C++等运行库,所以我们还是要运行下,大概四个多G)
- 要安装所需的确切组件,请运行./eng/scripts/InstallVisualStudio.ps1
PS> ./eng/scripts/InstallVisualStudio.ps1- Git 工具
- NodeJS。LTS版本10.14.2或更高版本https://nodejs.org
- Java Development Kit 11或更高版本。要么:
- OpenJDK https://jdk.java.net/
- 甲骨文的JDK https://www.oracle.com/technetwork/java/javase/downloads/index.html
- 要安装此回购协议只能使用的JDK版本,请运行eng / scripts / InstallJdk.ps1
./eng/scripts/InstallJdk.ps1- Chrome-基于硒的测试需要安装一个版本的Chrome。从[ https://www.google.com/chrome ] 下载并安装它
拉取代码
ASP.NET Core使用git子模块来包含其他一些项目的源代码。
对于项目的新副本,运行:
git clone --recursive https://github.com/aspnet/AspNetCore
如果第一次没有通过,则可以再更新,再 .\restore.cmd :
git submodule update --init --recursive
为了挑选你想要的版本,您必须选择迭代,否则将会是最新的版本,所以必须切换并创建一个分支。
git checkout (要使用的版本)v3.1.0 -b test
还原代码
在Github拉取代码之后,您需要执行以下操作,这将下载所需的工具并还原整个存储库一次。
.\restore.cmd
这个时候,您应该可以通过Visual Studio 或者 Vs Code 打开您想打开的项目了,但是打开之后会发现,缺少很多本身项目所需的依赖库。
构建代码
构建代码的前提是您的还原代码通过了。否则则会直接构建失败,这里的Windows命令行如下:
.\build.cmd
该操作会耽误您的一点时间,考虑到一般的计算机,差不多会用到十分钟多一点,当然这是在您网络良好的情况下。
通过Visual Studio 享受美食

一些问题
像NodeJs 和 Java JDK 一定要装好,最好在PowerShell执行以上操作。
问题一:
PowelShell出现 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本。有关详细信息,请参阅 "get-help about_signing"。 ,请在powershell中执行 set-ExecutionPolicy RemoteSigned .
问题二:
如果找不到SDK,请启动Visual Studio,转到“ 工具”>“选项”,然后在“ 环境”>“预览功能”下选中“ 使用.NET Core SDK的预览”。
最后希望大家顺利还原并构建源代码!~
更多资料
https://github.com/aspnet/AspNetCore/blob/master/docs/BuildFromSource.md
在Windows系统中构建还原ASP.NET Core 源码的更多相关文章
- 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器
1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...
- ASP.NET Core源码学习(一)Hosting
ASP.NET Core源码的学习,我们从Hosting开始, Hosting的GitHub地址为:https://github.com/aspnet/Hosting.git 朋友们可以从以上链接克隆 ...
- ASP.NET Core[源码分析篇] - WebHost
_configureServicesDelegates的承接 在[ASP.NET Core[源码分析篇] - Startup]这篇文章中,我们得知了目前为止(UseStartup),所有的动作都是在_ ...
- ASP.NET Core[源码分析篇] - Authentication认证
原文:ASP.NET Core[源码分析篇] - Authentication认证 追本溯源,从使用开始 首先看一下我们通常是如何使用微软自带的认证,一般在Startup里面配置我们所需的依赖认证服务 ...
- ASP .NET CORE 源码地址
ASP .NET CORE 源码地址:https://github.com/dotnet/ 下拉可以查找相应的源码信息, 例如:查找 ASP .NET CORE Microsoft.Extension ...
- ASP.NET Core 源码阅读笔记(2) ---Microsoft.Extensions.DependencyInjection生命周期管理
在上一篇文章中我们主要分析了ASP.NET Core默认依赖注入容器的存储和解析,这一篇文章主要补充一下上一篇文章忽略的一些细节:有关服务回收的问题,即服务的生命周期问题.有关源码可以去GitHub上 ...
- asp.net core源码地址
https://github.com/dotnet/corefx 这个是.net core的 开源项目地址 https://github.com/aspnet 这个下面是asp.net core 框架 ...
- Visual Studio 2017中使用SourceLink调试ASP.NET Core源码
背景 当我们在学习ASP.NET Core或者调试ASP.NET Core程序的时候,有时候需要调试底层代码,但是当我们在Visual Studio中调试程序的时候,由于一些基础库或者第三方库缺少pd ...
- ASP.NET Core 源码阅读笔记(5) ---Microsoft.AspNetCore.Routing路由
这篇随笔讲讲路由功能,主要内容在项目Microsoft.AspNetCore.Routing中,可以在GitHub上找到,Routing项目地址. 路由功能是大家都很熟悉的功能,使用起来也十分简单,从 ...
随机推荐
- 面试精选:JVM垃圾回收
Tips:关注公众号:松花皮蛋的黑板报,领取程序员月薪25K+秘籍,进军BAT必备! Java堆中存放着大量的Java对象实例,在垃圾收集器回收内存前,第一件事情就是确定哪些对象是“活着的”,哪些是可 ...
- formdata,ajax提交数据
var data = document.getElementById("#dataForm"); var formData = new FormData(data); var ac ...
- git 设置不用每次都输入 账号密码
执行命令 git config --global credential.helper store 然后,下次再输入一次 账号密码 就可以了.
- html5 微信真机调试方法vConsole
html5 微信真机调试方法 vConsolehttps://blog.csdn.net/weixin_36934930/article/details/79870240
- Unity中用Mesh画一个圆环(二)
中目标-生成完整面 在之前的内容中我们已经成功生成了一个面,接下来我们要生成剩下的面就很容易了. 我们把之前生成的面当作顶面,接着我们来生成底面. 还记得前面说过\(\color{#1E90FF}{D ...
- 如何给HTML标签中的文本设置修饰线
text-decoration属性介绍 text-decoration属性是用来设置文本修饰线呢,text-decoration属性一共有4个值. text-decoration属性值说明表 值 作用 ...
- 对于 TCP 三次握手的理解
假设名叫 A 和 B 的两个人要进行通信,那么他们两人之间,首先要确保通信顺畅. 而确保通信顺畅,就要从 3 个维度,确定 8 个能力 3 个维度分别是: 1.人知道(A 知道.B 知道) 2.人(A ...
- .NET单例模式快速学习应用
单例模式属于设计模式中最简单的一个模式,在实际应用中也非常广泛,但可能是受到各类教程的影响,看到很多实现方式仍然沿用Java的那一套,其实在.NET中可以用更简洁的实现方式. 一.知识点介绍 核心目标 ...
- C++中对封装的语法支持——静态成员
静态成员(变量与函数) 1.静态成员变量的语法.访问.特点(共享.类内声明类外初始化) 静态成员变量在class中只做声明,并没有初始化所以不会分配内存. (1) 非静态成员变量必须通过对象来访问. ...
- 导入maven项目pom报错
打开window->preferences->maven->user settings更换settings.xml即可