Asp.Net Core 源码之 extensions 从源码生成成功.

前言,

1.你看到这篇文章的时候,如果你还没尝试过生成源代码,你可以先试着按照自己的丝路来搞一遍.这样更好一点.
因为直接给你一个已经运行成功的范本,但是我没有具体来说我其中的坑.,
最终你可能也会运行成功,但是一些解题的思路可能没有增加.
就是你虽然解决了问题,但是解决问题的能力没有提升.

2.看了这篇文章你也不一定能生成成功,有没有帮助在看具体情况吧...

我的基本环境配置

[
    "系统":"Windows 10 专业版",
    "Visual Studio":"Visual Studio 2019",    
]

从Github源代码克隆到本地

Github源地址
https://github.com/dotnet/extensions


先Fork到自己的仓库中,会不会更好点?
将这个项目Fork到自己的库中,这样就可以修改完提交到本地库了.

"Fork your own copy of dotnet/extionsions to your account."


Git命令

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

看下最终到本地的样子
克隆到本地上根目录大概是这个样子.
Asp.Net Core 源码之 extensions 从源码生成成功.


切换源代码分支

先查看下Tag

git tag

如果Tag太多的话,输入":q"可以返回.


切换分支

git checkout v3.1.0



查看项目里面自带的文档

{README.md}
其实这是一个项目的概览,
对于此次生成并没有太大帮助.
但是作为一个好习惯,还是先看下这个文档.


{.\docs\BuildFromSource.md}
我觉得这个是此次生成过程中的重点.必看.

Building Extensions on Windows requires:

Building in Visual Studio
Visual Studio requires special tools and command lien parameters.
You can acquire these by executing the following on command-line:

.\restore.cmd
.\startvs.cmd

This will download required tools and start Visual Studio
with the correct environment variables.

备注:执行上面的2个命令,可是费劲不少...


{restore.cmd}&{startvs.cmd}命令如果卡在下载sdk阶段.

每次执行命令,
都会提示:

.NET Core has not yet been instanlled .Running restore.cmd to install it.
dotnet-install:Downloading link : https://dotnetcli.azureedge.net/dotnet/Sdk/3.1.301/dotnet-sdk-3.1.301-win-x64.zip

我用命令"dotnet --list-sdks"之后发现明明已经安装了Sdk了.
Asp.Net Core 源码之 extensions 从源码生成成功.

因为命令一直执行不成功,卡在下载SDK那里,
反正项目怎么都运行不起来,
那几天这个问题不解决总感觉像块石头压在心里,
关键网络上资源比较少,最后实在顶不住了,
抱着试试的态度,
用我简陋的English去Git.Issues上提了一个问题.
问题意思大概就是,明明系统中已经安装了Sdk了,
为什么还要下载这个Sdk?
这里贴一下,热心人士给出的推理和建议.

startvs.cmd checks to see if there is already a local dotnet installation,
relative to where this repo is checked out on your box.
If you just check out this repo and run startvs.cmd,
it will install dotnet in a folder named .dotnet relative to the repo root - it doesn‘t care about the global dotnet installation on your machine.
If you run restore.cmd then startvs.cmd,
then startvs shouldn‘t need to install dotnet again.

最终意思大概是要在项目根目录下的子目录{.dotnet}下应该有这个Sdk,
我就将这个链接https://dotnetcli.azureedge.net/dotnet/Sdk/3.1.301/dotnet-sdk-3.1.301-win-x64.zip自己先下载下来,
然后解压缩,放到根目录的{.dotnet}目录下.
然后再次还原了项目,竟然就可以了.

Asp.Net Core 源码之 extensions 从源码生成成功.


最终这两个命令顺利执行成功

.\restore.cmd
.\startvs.cmd

运行该解决方案.

Visual Studio报错

Detailed Information:
无法找到 .NET Core SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配。


cmd命令下和global.json中{Sdks}版本对比下

dotnet --info

将{global.json}中的Sdks版本改成"3.1.301"

终于生成不报错了.

Asp.Net Core 源码之 extensions 从源码生成成功.

遗留问题:还有1个未解决的问题.依赖项.黄色感叹号

这个随缘吧,以后搜到了原因再说...
我要先看源代码了...

磕磕绊绊的过程...

看着文章写得一个步骤一个步骤下来的.
但是谁搞谁知道,没准哪个步骤就会出现问题,
特别是第一次研究开源项目,更是各种坑.

我刚开始研究开源项目的时候,以为直接下来下来源码就能生成成功的...
然后各种失败之后,
去搜索网络上的教程,知道要先切Git分支,
老老实实去读各种文档↓
{README.md}
{/docs/BuildFromSource.md}

特别是上面的都搞定之后,卡在这里好几天.

.\restore.cmd
.\startvs.cmd

万事开头难,但是开始的时候,也是学到最多的时候...

扩展学习

Asp.Net Core 源码之 extensions 从源码生成成功.

上一篇:03前端_css盒子


下一篇:Apache 提供的3种不同方式访问web的方法