亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

編譯?dotnet和aspnetcore?源代碼詳情

 更新時(shí)間:2022年03月14日 16:59:48   作者:My?IO  
這篇文章主要介紹了編譯?dotnet和aspnetcore?源代碼詳情,圍繞主題相關(guān)資料展開展開全文內(nèi)容,具有一定的參考價(jià)值需要的小伙伴可以參考一下

前言:

為 dotnet/aspnetcore 修改 issue,但是在 clone 代碼后,發(fā)現(xiàn)要編譯成功,遠(yuǎn)沒有想象中那么容易。

因此,將整個(gè)過程進(jìn)行記錄,以供大家參考。

?以下操作都是在 Windows 10 下完成。?

0.環(huán)境準(zhǔn)備

詳見官方文檔:《使用源碼編譯 ASP.NET Core》中的“Step 2: Install pre-requisites”。

我的機(jī)器只提前裝了 Visual Studio 2022,JDK 和 NodeJS。

大家可以自行按需安裝。

1.還原存儲(chǔ)庫(kù)

按照 ?BuildFromSource.md? 的描述,在命令行窗口進(jìn)入代碼所在目錄,輸入如下命令開始還原存儲(chǔ)庫(kù):

restore.cmd

等待少許,就碰到了第一個(gè)錯(cuò)誤:

這一看就是下載超時(shí)了,??這該死的網(wǎng)絡(luò)!??

2.暗渡陳倉(cāng)

找到下載命令所在文件 ??.dotnet\dotnet-install.ps1??,發(fā)現(xiàn)代碼邏輯比較復(fù)雜,不太好修改。

?不過,轉(zhuǎn)念一想,既然遠(yuǎn)程下載慢,那不如改成從本地下載!?

根據(jù)上面報(bào)錯(cuò)的下載鏈接,找到獲取下載地址的代碼:

function Get-Feeds-To-Use()
{
? ? $feeds = @(
? ? "https://dotnetcli.azureedge.net/dotnet",
? ? "https://dotnetbuilds.azureedge.net/public"
? ? )

? ? if (-not [string]::IsNullOrEmpty($AzureFeed)) {
? ? ? ? $feeds = @($AzureFeed)
? ? }

? ? if ($NoCdn) {
? ? ? ? $feeds = @(
? ? ? ? "https://dotnetcli.blob.core.windows.net/dotnet",
? ? ? ? "https://dotnetbuilds.blob.core.windows.net/public"
? ? ? ? )

? ? ? ? if (-not [string]::IsNullOrEmpty($UncachedFeed)) {
? ? ? ? ? ? $feeds = @($UncachedFeed)
? ? ? ? }
? ? }

? ? return $feeds
}

修改成從本地下載:

function Get-Feeds-To-Use()
{
? ? $feeds = @(
? ? "http://localhost:12345/dotnet"
? ? )

? ? return $feeds
}

現(xiàn)在,只需要在本地創(chuàng)建 IIS 站點(diǎn),每次報(bào)錯(cuò)后終止程序。

再根據(jù)報(bào)錯(cuò)鏈接,使用下載工具下載原始鏈接,放置在本地站點(diǎn)對(duì)應(yīng)目錄,然后重新運(yùn)行 ??restore.cmd?? 即可。

?吐槽一下:其中一個(gè)文件下了4個(gè)小時(shí)。囧rz?

3.獲取 submodule 源碼

經(jīng)過多次重試,總算全部下載成功了。

但是,又顯示了另一個(gè)錯(cuò)誤:

參照 BuildFromSource.md,發(fā)現(xiàn)我們 clone 時(shí)掉了參數(shù) ??--recursive??:

git clone --recursive https://github.com/YOUR_USERNAME/aspnetcore

幸好還可以補(bǔ)救:

git submodule update --init --recursive

重新運(yùn)行??restore.cmd?? 順利完成。

4.編譯

但是,當(dāng)我們使用 VS2022 編譯 dotnet/aspnetcore 的任意一個(gè)項(xiàng)目時(shí),卻提示找不到指定SDK:

原來它是在找 SDK 7.0:

"sdk": {
? ? "version": "7.0.100-preview.2.22103.2"
? }

而這個(gè) SDK 其實(shí)在前面的步驟已經(jīng)安裝在源碼目錄下了。

因此,只需要將源碼目錄下 SDK 路徑,例如 ??E:\Codes\aspnetcore\.dotnet\sdk???,加入到 ??PATH?? 環(huán)境變量中。

5.測(cè)試

但是,當(dāng)我們運(yùn)行測(cè)試時(shí),卻提示找不到測(cè)試用例。

根據(jù)錯(cuò)誤提示:

我們把源碼目錄下的對(duì)應(yīng)路徑下的所有內(nèi)容, 例如 ??E:\Codes\aspnetcore\.dotnet\shared\Microsoft.NETCore.App???,復(fù)制到 ??C:\Program Files\dotnet\shared\Microsoft.NETCore.AppA?? 目錄中。

再次運(yùn)行測(cè)試成功.

結(jié)論:

這次編譯碰到的主要問題,還是由于訪問國(guó)外的網(wǎng)速太慢造成的。

但是和用于 dotnet/runtime 的解決思路不同。

到此這篇關(guān)于編譯 dotnet/aspnetcore 源代碼詳情的文章就介紹到這了,更多相關(guān)編譯dotnet/aspnetcore 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論