netcore 编译 html,Asp.Net Core 源码编译过程

{

"sdk": {

"version": "3.1.302" //编译所依赖的sdk版本,先确定编译哪个版本,然后去https://dotnet.microsoft.com/download/dotnet-core

},

"tools": {

"vswhere":"2.7.1", //新增,默认依赖的版本低,且无法下载,这个在vs的安装目录可以找到

"dotnet": "3.1.302", //和sdk版本一致

"runtimes": {

"dotnet/x64": [

"$(MicrosoftNETCoreAppInternalPackageVersion)"//记住该变量

],

"dotnet/x86": [

"$(MicrosoftNETCoreAppInternalPackageVersion)"

]

},

"Git": "2.22.0", //git所依赖的版本

"jdk": "11.0.3", //依赖jdk版本

"vs": {

"version": "16.0", //vs最低支持版本

"components": [

"Microsoft.VisualStudio.Component.VC.ATL",

"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",

"Microsoft.VisualStudio.Component.Windows10SDK.17134"

]

}

},

"msbuild-sdks": {

"Yarn.MSBuild": "1.15.2",

"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.20213.4",

"Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.20213.4"

}

}

打开./eng/Versions.props,查找MicrosoftNETCoreAppInternalPackageVersion,将内容改为要编译的版本

AAffA0nNPuCLAAAAAElFTkSuQmCC

为什么上边指定的sdk版本是3.1.102呢?

AAffA0nNPuCLAAAAAElFTkSuQmCC

5d9c12a97418522e88e521fbf1b143be.png

如果不相信的话,可以在根目录执行:.\restore.cmd

在执行restore.cmd脚本中,会在根目录中生成一个.dotnet目录.会创建一个dotnet-install.ps1脚本,通过该脚本会下载所需要的sdk的.看到有下载sdk之后,终止脚本执行.

编辑.dotnet目录下的dotnet-install.ps1文件,搜索DownloadLink 复制一行后,注释所在行,这里固定下载地址为:上图的中sdk的Binaries中的x64链接所打开后的链接:

2a59c74d7d76ae51c8a265d720e68cbf.png#$DownloadLink = Get-Download-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture

$DownloadLink = "https://download.visualstudio.microsoft.com/download/pr/dafb4b49-9990-49aa-b8fe-9002c1a3578a/42acda06cb3d22d886b91aac37fda667/dotnet-sdk-3.1.302-win-x64.zip"

修改后,重新执行dotnet-install.ps1脚本,很快就可以将sdk下载结束.这时候会在.dotnet目录中生成一个x86的目录.该目录中也有一个dotnet-install.ps1的脚本文件.该文件会下载另外一个Asp.Net Core Runtime,这个在所需的sdk图中也有标注.在图中右侧是Asp.Net Core Runtime 地址(打开链接后),按上方修改dotnet-install.ps1脚本的套路:#$DownloadLink = Get-Download-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture

$DownloadLink = "https://download.visualstudio.microsoft.com/download/pr/402055ae-4406-46c4-be5e-19d67daf6f15/ab82f9b8e11093d082c23150a94bd8cf/aspnetcore-runtime-3.1.6-win-x86.zip"

当有提示下载vswhere的时候,去VS安装的目录中,在Installer目录中,拷贝vswhere文件,将该文件放入源码根目录中的.tools中

035498a98659f303379fca1175f2bf77.png

就这样,直到restore.cmd执行不报错的时候,就可以执行build.cmd了,因为中间一直在restore和build,下面的错误忘了,在什么时候报的了?

一个Razor的测试项目因为编码问题造成无法编译成功:

AAffA0nNPuCLAAAAAElFTkSuQmCC

一个在src/Framework/App.Runtime下Microsoft.AspNetCore.App.Runtime.csproj文件,修改DotNetRuntimeDownloadUrl内容,图3右侧的x64链接打开后的direct link的地址:

AAffA0nNPuCLAAAAAElFTkSuQmCC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值