aspnetcore6.0源代码编译调试
虽然编译源码折腾了几个时间(卡在restore),最后还是跑起来了aspnetcore6.0mvc源码项目,下面说步骤,前提是网络能连外,对于不能连外的懒得折腾。
第一步
电脑找个地克隆下GitHub上的源码下来
git clone --recursive https://github.com/dotnet/aspnetcore.git
注意一定要带上 recursive,一次性把依赖给下载下来。
第二步
git tag 查看版本(注意该命令需要进入到下载的代码文件夹aspnetcore里执行),一直回车直到显示所有版本,选择自己想要的版本号,记下来,输入!退出。我选择NET6最新v6.0.9版本


第三步 执行 git checkout v6.0.9拉取该版本。
第四步 找到该文件 aspnetcore\eng\scripts\InstallVisualStudio.ps1 目录下执行 .\InstallVisualStudio.ps1 -edition enterprise 默认下载vs2019的企业版本以及需要的以来组件,当然你可以修改这个文件下载最新的vs2022。该命令在powershell下面执行吗,如果有失败提示注意是不是powershell禁用了脚本执行。自行百度开启即可(管理员下执行 Set-ExecutionPolicy RemoteSigned)
接下来就是弹出安装vs了。(我安装完vs2019后直接卸载掉了,我本地是vs2022就没用下载下来的vs2019)
第五步 powershell下执行 .\restore ,脚本在 aspnetcore下,文件就是restore.cmd。
最关键最耗时的一步。没有FQ或者网络不佳会卡死在这里。这里主要是下载aspnetcore\.dotnet这个文件夹,我这里编译完大小910m,占用920m。如果小于这个数或者卡在这里很遗憾是过不去了(用powershell和cmd都可以,ps的话需要加.\)

restore碰运气,如果红色错误多的话需要细看再细看,我遇到两个大的错误,一个是提示node的版本太老,就是我电脑版本是多少, 实际要求的版本是多少,我直接卸载重装了最新的node。该错误忘了截图

看看这个报错,无非就是一堆vcxproj结尾的文件里导入 props的文件不存在。首选发现全是aspnetcore\src\Servers\IIS\AspNetCoreModuleV2这个文件夹下面的错误。

打开其中一个文件看一下,按照VCTargetpath关键字每个文件都有三个地方,粗暴的注释掉。这个模块是iis的加载core模块,是c++写的,对运行起来调试代码基本无影响,我的项目现在都不用iis了。
还需注意一个地方就是该文件夹AspNetCoreModuleV2下面的所有test也要改,我看这是测试文件夹,粗暴的删除掉了,不会影响项目运行。

haixu 
restore需要几分钟时间的,最后就是这样的了(有错误不要紧,先自己看看能不能判断问题所在,不行就百度一下去查一查。)

第六步 测试mvc源码 ,通过脚本打开mvc解决方案,startvs Mvc.sln,后续就是编译代码调试代码了。

编译的时候发现这里有报错,懒得深究,调试有需要再解决了。再看注释很明显说不没有足够数据,crlf不能正确的到这里,就是不执行吧,那就粗暴的注释一下下了。

结束!
hosting模块调试,一样执行cmd命令 startvs.cmd打开vs2022

mvc模块调试

aspnetcore6.0源代码编译调试的更多相关文章
- Android 6.0 源代码编译实践
http://www.judymax.com/archives/1087 Android 6.0 源代码编译实践 https://mirrors.tuna.tsinghua.edu.cn/help/A ...
- Linux1.0源代码编译过程
根据源代码包中的readme文件及http://chfj007.blog.163.com/blog/static/173145044201191195856806/?suggestedreading& ...
- 使用cm-12.0源代码编译twrp
Select the newest branch available. This step is not necessary with Omni because Omni already includ ...
- IDEA 上 Tigase8.0 源代码编译运行
Tigase交流群 :310790965 一些小伙伴们经常问Tigase8 check下来的源代码怎么跑起来,因为我不能及时一 一回答,所以还是写个博文来演示一下吧,一般针对新手而言,老手的话,就跳过 ...
- CDH4.5.0源代码编译
Unable to load native-hadoop library for your platform解决 安装maven 1 cmake-2.8.12.1.tar.gz cd cmake-2. ...
- 关于DCMTK3.6.0源代码编译的总结
1.DCMTK cmake出来的代码是一样的.MT和MD版本的区别在于DCMTK工程下的每个子工程的代码生成中的MT还是MD,只要修改成为相应的值就可以了. 2.依赖包的选择.依赖包必须与上面中所说的 ...
- VS2010 win7 QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序
下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0 ...
- 亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)
下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0- ...
- Android:基于Eclipse编译调试系统级应用源代码
一. 概要描述 在使用Eclipse导入android工程源代码以后,我们可以使用ddms调试和跟踪源代码. 本文讲述动态调试源代码和静态调试源代码的两种方法,避免build system. ...
随机推荐
- HTML 超文本标记语言 (Hyper Text Markup Language)
1.HTML是什么 HTML指的超文本标记语言(Hyper Text Markup Language),是一种用来描述网页的语言.超文本指的是除了可以包含文字之外,还可以包含图片.链接.音乐.视频.程 ...
- Docker安装canal、mysql进行简单测试与实现redis和mysql缓存一致性
一.简介 canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费. 早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求 ...
- 今天介绍一下自己的开源项目,一款以spring cloud alibaba为核心的微服务架构项目,为给企业与个人提供一个零开发基础的微服务架构。
LaoCat-Spring-Cloud-Scaffold 一款以spring cloud alibab 为核心的微服务框架,主要目标为了提升自己的相关技术,也为了给企业与个人提供一个零开发基础的微服务 ...
- 通过memberlist库实现gossip管理集群以及集群数据交互
通过memberlist库实现gossip管理集群以及集群数据交互 概述 memberlist库的简单用法如下,注意下面使用for循环来执行list.Join,原因是一开始各节点都没有runing,直 ...
- 01-vscode自定义配色方案 插件基础上
01-下载相关主题插件 02- 点击设置按钮 复制id 03-进入插件文件 C:\Users\Administrator\.vscode\extensions 04-复制刚才的id 05-themes ...
- Linux一些错误总结
1.cannot verify <mydomainname> certificate, issued by '/C=US/O=Let's Encrypt/CN=R3': 解决1:wget ...
- 多校B层冲刺NOIP20211110 字符配对游戏
原题 问题描述 操场边,运动会没有项目的同学也没闲着,经过几天的研究,他们发明了一个很有意思的字符串配对游戏,两位同学准备两张白纸,第一个同学在纸上写一个整数N和一个由小写字母组成的字符串S,将S重复 ...
- P2183 [国家集训队]【一本通提高组合数学】礼物
[国家集训队]礼物 题目背景 一年一度的圣诞节快要来到了.每年的圣诞节小 E 都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小 E 心目中的重要性不同,在小 E 心中分量越重的人,收到的礼物会 ...
- Odoo env.ref()函数
python env.ref()函数作用是获取xml id记录. 1 action = self.env.ref('base.res_company_action').read()[0] 2 acti ...
- 如何在本地配置lemonlime和使用lemonlime测试交互题
如何在本地配置\(lemonlime\)和使用\(lemonlime\)测试交互题 \(lemonlime\)下载地址链接,提取码ae3z 点开\(lemonlime.exe\)然后编译器选择\(gc ...