あなたは、ASP.NETコアのソースコードを読むことを始めるにはどうすればよいです

背景

我々はASP.Netコア、実装クラス内のメソッドのいくつかに興味がある場合は、そこに学ぶために多くの方法は、さまざまな記事を見て、読んで、ですが、最も直接的で最も徹底的な方法は、ソースコードを読むことです。
ASP.NETコアのソースコードはGitHubの上でホストされ、プロジェクトのアドレスは以下の通りですhttps://github.com/dotnet/aspnetcore
あなたは、単にメソッドが実装されているか確認したい場合は、我々はgithubの上で直接サイトを閲覧することができます。
しかし、問題のソース・コード・ページ番号を読み取ることでの出会いは、最初の友情の効果を示していないコードに続いて指定されたクラスやメソッドを、見つけることは容易ではありません。
だから、最良の方法は、私たちのネイティブにソースコードをダウンロードすることです。

ソースコードをダウンロードしてください

プロジェクトでは、ソースコードがダウンロードするための方法をいくつか提供してGitHubの上でホストされています:

使用gitの、SVN、GitHubのクライアント、またはダウンロードGitHubのソースアーカイブをプレパック。
それは単純なプロジェクトである場合は、ソースコードはGitHubパッケージアーカイブをダウンロードすることができます。

しかし、このような大規模なプロジェクトでは、ASP.NETコアのために、原因コードのサブモジュールの不足のためにソースコードのアーカイブをダウンロードし、コンパイルできません。
ないコンパイルコード、以下の機能は使用できません。特定のプロパティ、メソッドなどをコードを見つけるために参照されているIDE(F12)、が提供するクラスとメソッドの間にクイックナビゲーション。
大規模なプロジェクトでは、これらの欠如は、さらにプロジェクトのソースコードを読むことはほとんどない方法を提供しています。
拡張メソッドの広範な利用する特定のASP.NETコアプロジェクトで、拡張方法は、手で見つけることが不明瞭コーナー、煩雑で困難で定義されてもよいです。
それは強くはgitを使ってクローン倉庫ASP.NETコアプロジェクトにお勧めします。

gitのクローン--recursiveます。https:// github.com/dotnet/aspnetcore


コンパイルの準備

今、私たちは、ソースコードを持っていますが、ASP.NETコアプロジェクトは、他の技術の多くを使用しているため、ソースコードをコンパイルする前に、ビルド環境を用意する必要があるということ。
異なるオペレーティングシステムは、例えばビジュアルStuidoを使用して、Windows環境に同じ需要はありませんが、上記の公式文書(バージョン3.1.1)の現在のニーズは、以下のとおりです。

  • Windowsの10バージョン1803以降
  • Visual Studioの2019年
    バージョン、必須ではないが、しかし、いくつかのコンポーネントがアップデートの更新版に含まれる実際の依存関係。
    たとえば、あなたは(のMSBuildの新しいバージョンで)16.4.4以降にアップデートするコードのニーズの3.1.0バージョンをコンパイルした場合。
    VSコード場合は、後述を参照してください。
  • Gitの  https://git-scm.org
  • NodeJS 10.14.2以降  https://nodejs.org
  • Java Development Kit 11以降
  • 使用するクロムベースのSeleniumテスト

あなたが別の環境(LinuxまたはMacOSの、VSのコードなど)を使用している場合は、(ソースコードの詳細なインストールマニュアルを参照してくださいドキュメント/ BuildFromSource.mdのガイドラインに従ってビルド環境が前提条件セクションをインストールする準備をしている、ファイル)。
このようJDKのコンパイル時間を見つける方法として、コンテンツの詳細、(すでにマシンをインストールしましたが、スクリプトのプロンプトを見つけることができない場合)、あなたは,.直接コンパイルされたスクリプトを表示することができます\ Build.ps1(または。\ Build.sh)ファイル。

削減

コンパイラー環境の準備ができたら、新しい環境変数の発効が唯一のインストールコマンドラインの後に起動するので、新しいコマンドラインウィンドウを開くことを忘れないでください。
機械の前にクローニングされた最新のコード(頻繁に更新)ですが、ほとんどの人々のために、我々は唯一の現在使用されている独自のバージョンに関係しています。
すべてのASP.NETコア・リリースには、タグ(タグ)を再生しています。
したがって、我々は最初のすべてのエディションを一覧表示するにはgitコマンドを使用することができます。

gitのタグ

そして、ラベル名に応じて、バージョン3.1.0のように、私たちのターゲットバージョンに切り替えます。

gitのチェックアウトV3.1.0

あなたは、コードをVisual StudioまたはVSコードを使用する前に実行する必要があります。\ Restore.cmdコンパイルを復元する(Windows環境、Linux、およびMacOSで.SHファイルは以下同様、対応する使用)オペレーティング環境とさまざまなコンポーネントを依存しています。
大規模なソースコードの更新があるたびに、再実行する必要があります。\ Restore.cmdを。
ファイル名を指定して実行。\ restore.cmdした後、スクリプトはすぐにコンパイラとランタイム環境のチェックを開始します、ダウンロードさまざまなコンポーネント(ファーストラン)に依存する
いくつかのコンポーネントのダウンロード速度が非常に遅いので、サーバは、外国であるため。(コンポーネントのダウンロード速度が非常に遅い場合、kexueインターネットが大幅に改善されます)

すべてのダウンロードDOTNETのランタイム環境の第一は、これは精神的に用意し、最大かつ最も遅いです。
それは.dotnetのルートディレクトリ、ほぼ1ギガバイトに格納されます。

そして、プロジェクトのさまざまなコンポーネントのダウンロードを開始するには、ダウンロードにnugetツールによって部分的に依存
私の中国電信が繰り返しブロードバンドに再試行が同じまま、ネットワークの理由から、ダウンロードがしばしば間違っています。
nugetがローカルキャッシュコンポーネントでダウンロードしていたので、そのような状況が発生すると、次のような方法でこの問題を解決することができます
VSでの新しいASP.NETコアプロジェクトを作成し、その後、NuGetパッケージの管理インターフェイスは、このパッケージをダウンロードします(この時間は疑問符に直面し、ダウンロードすることができます)、
ネットワークをダウンロードする必要がない場合、コマンドラインを介して、再び、ローカルにあるためそこにキャッシュされます。

Microsoft.Internal.AspNetCore.H2Spec.All 2.1.1:私のネイティブコンパイルプロセスでは、我々は状況がパッケージを見つけることができませんが発生しました。
nuget.org上の手は、実際に検索しませんでした。その後にmygetに見つかった、または上に新しいアイテムをインストールするには、コマンドにVisual Studioのパッケージマネージャーコンソールで次のように使用します:

PM>インストール・パッケージMicrosoft.Internal.AspNetCore.H2Spec.All -Version 2.1.1  - ソースhttps://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json

パッケージを見つけることができるように再度コマンドを実行します。
図:
 


打开解决方案

由于ASP.NET Core项目实在太大了——包含单元测试在内有626个csproj文件,8207个cs文件——所以并没有一个包含所有子项目的解决方案(.sln文件)。
在.\src目录下面有很多子目录,每一个子目录都是一个子项目,每个子项目中都包含了一个解决方案(.sln文件)。
和我们平常打开自己的项目不一样,ASP.NET Core的解决方案文件(.sln)由于需要设置环境变量因此需要使用脚本命令来打开。
运行子目录中的startvs.cmd即可启动Visual Studio打开相应的子项目。

根据电脑配置,第一次启动可能需要耗费相当长的时间,下次就快了。
下图是MVC项目的解决方案,巨大无比吧。

现在,让我们开始好好享受阅读的乐趣吧。(手动狗头)

如果你需要编译源代码的话,修改源代码以后运行.\build.cmd文件,然后你可以去泡茶了,回来应该就差不多了。(再次狗头)

おすすめ

転載: www.cnblogs.com/wenhx/p/Build-ASP-NET-Core-from-Source.html