最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言:

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

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

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

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

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

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

大家可以自行按需安裝。

1.還原存儲庫

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

restore.cmd

等待少許,就碰到了第一個錯誤:

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

2.暗渡陳倉

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

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

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

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 站點,每次報錯后終止程序。

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

?吐槽一下:其中一個文件下了4個小時。囧rz?

3.獲取 submodule 源碼

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

但是,又顯示了另一個錯誤:

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

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

幸好還可以補救:

git submodule update --init --recursive

重新運行??restore.cmd?? 順利完成。

4.編譯

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

原來它是在找 SDK 7.0:

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

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

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

5.測試

但是,當(dāng)我們運行測試時,卻提示找不到測試用例。

根據(jù)錯誤提示:

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

再次運行測試成功.

結(jié)論:

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

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

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

相關(guān)文章

最新評論

犍为县| 芦溪县| 河北省| 如东县| 华亭县| 常山县| 丹江口市| 崇义县| 阿合奇县| 南陵县| 平潭县| 尼勒克县| 英山县| 海城市| 内江市| 句容市| 淮南市| 庆云县| 南皮县| 宿迁市| 牙克石市| 民乐县| 呼和浩特市| 乌海市| 四平市| 永泰县| 时尚| 南汇区| 清水河县| 浙江省| 安乡县| 武威市| 淳化县| 铁岭市| 浦县| 铁岭市| 陕西省| 麻江县| 溧水县| 深圳市| 扎囊县|