当前位置: 首页 > news >正文

aspnetcore6.0源代码编译调试

🚀 优质资源分享 🚀

学习路线指引(点击解锁)知识定位人群定位
🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

虽然编译源码折腾了几个时间(卡在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模块调试

相关文章:

  • 【力扣刷题】Day04——链表专题
  • 云计算以及云计算安全相关的中文概述
  • 【 C++ 】哈希表底层结构剖析
  • Swift 基础语法 - 数据类型
  • js单行代码------对象
  • T1061 求整数的和与均值(信息学一本通C++)
  • Java注解-最通俗易懂的讲解
  • 特殊类设计
  • 【STL***deque容器二】
  • 多测师肖sir_高级讲师_第2个月第8讲解类
  • 各编程语言 + aardio 相互调用示例
  • SpringCloud概述
  • element的Form表单就应该这样用
  • Linux基础组件之死锁检测
  • TypeScript——函数(函数定义类型、可选参数和默认参数、剩余参数、函数类型变量、使用接口封装函数变量类型)
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Android Volley源码解析
  • angular2开源库收集
  • Codepen 每日精选(2018-3-25)
  • C学习-枚举(九)
  • Javascript编码规范
  • js算法-归并排序(merge_sort)
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • LeetCode算法系列_0891_子序列宽度之和
  • linux学习笔记
  • Selenium实战教程系列(二)---元素定位
  • vue-loader 源码解析系列之 selector
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • Web设计流程优化:网页效果图设计新思路
  • 成为一名优秀的Developer的书单
  • 判断客户端类型,Android,iOS,PC
  • 如何选择开源的机器学习框架?
  • 如何在 Tornado 中实现 Middleware
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 通过git安装npm私有模块
  • 问题之ssh中Host key verification failed的解决
  • 我与Jetbrains的这些年
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 一些css基础学习笔记
  • 怎么将电脑中的声音录制成WAV格式
  • 找一份好的前端工作,起点很重要
  • 转载:[译] 内容加速黑科技趣谈
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​渐进式Web应用PWA的未来
  • ​油烟净化器电源安全,保障健康餐饮生活
  • (1)常见O(n^2)排序算法解析
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (2)Java 简介
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (三)elasticsearch 源码之启动流程分析