.NET Core 源碼編譯的問題解析

引言: .NET Core 源碼編譯

https://github.com/dotnet

git clone https://github.com/dotnet/runtime.git

一:Windows 編譯

  1. VS 2019 16.6(不要安裝預覽版)
  2. Win 10 專業版,最新版本 (1903/2004)
  3. 長路徑支持:組策略(gpedit.msc) > 計算機配置 > 管理模板 > 系統 > 文件系統 > 啟用 Win32 長路徑
  4. Git長路徑:git config –system core.longpaths true
  5. CMake http://www.cmake.org/download 最新的正式版
  6. Python 最新正式版
  7. 編譯指令:
./build -subset Clr
./build -subset Libs
./build -subset Installer

二:Linux 編譯

1.Ubuntu 18.04 LTS (Docker/虛擬機/vps) 內存至少1G

2.環境:

# 1. 安裝以下軟件包
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates gnupg software-properties-common wget

# 2. 獲取簽名密鑰
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | apt-key add -

# 3. 將kitware存儲庫添加到源列表並進行更新。
sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'
sudo apt-get update

# 4. 安裝 kitware 密鑰更新包
sudo apt-get install kitware-archive-keyring

# 5. 依賴軟件包
sudo apt-get install cmake llvm-9 clang-9 autoconf automake libtool build-essential python curl git lldb-6.0 liblldb-6.0-dev libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev libssl-dev libnuma-dev libkrb5-dev

# 編碼(可選) bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
apt-get install locales

3.克隆源碼倉庫

4.編譯指令:

./build -subset Clr
./build -subset Libs
./build -subset Installer

5.安裝運行時:

# 在/usr/share創建dotnet目錄
mkdir -p /usr/share/dotnet
# 接著,解壓運行時的二進制壓縮包,到這個新創建的目錄
tar zxf /home/runtime/artifacts/packages/Debug/Shipping/dotnet-runtime-5.0.0-dev-linux-x64.tar.gz -C /usr/share/dotnet
# 創建軟連接到bin目錄
ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
# 測試
dotnet --info

6.SDK 安裝:

# 首先,將 微軟 的包簽名密鑰,添加到受信任密鑰列表
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
# 然後,添加包存儲庫
dpkg -i packages-microsoft-prod.deb
# 更新源
apt-get update
# 安裝.NET SDK 3.1
apt-get install -y dotnet-sdk-3.1
# 看一下版本信息
dotnet --info

到此這篇關於.NET Core 源碼編譯的文章就介紹到這瞭,更多相關 .NET Core 源碼編譯內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!