ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从0到1跑通 .NET Runtime:环境、目录、构建与排错的完整任务流

从0到1跑通 .NET Runtime:环境、目录、构建与排错的完整任务流 从0到1跑通 .NET Runtime环境、目录、构建与排错的完整任务流【免费下载链接】runtime.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.项目地址: https://gitcode.com/GitHub_Trending/runtime6/runtime.NET runtime 是微软开源的跨平台 .NET 运行时仓库一套代码同时覆盖云端、桌面、移动端和 IoT 场景。仓库由三大块组成CoreCLR 与 Mono 两个运行时实现、BCL 类库以及负责启动应用的 host 与安装器。这篇文章按你从克隆仓库到跑通首次构建的真实顺序展开先备好环境和 SDK再理解目录和组件划分最后把新手最容易踩的报错一次讲清适合第一次接触 .NET 运行时源码的同学。备齐平台依赖与构建 SDK这个仓库支持在 Windows、Linux、macOS、FreeBSD 上构建但不是所有芯片组合都支持。先对照下表确认你的开发机在矩阵内再装依赖芯片WindowsLinuxmacOSFreeBSDx64支持支持支持支持x86支持———Arm32—支持——Arm64支持支持支持—三大平台的核心依赖如下仓库提供了一键脚本Linux 最小内存要求 1GB平台必备工具详细说明Linuxcmake ≥3.26、llvm、lld、clang、build-essential、libicu-dev、libssl-dev、libkrb5-dev、ninja-build、python3docs/workflow/requirements/linux-requirements.mdmacOSXcode 命令行工具、CMake ≥3.26、icu4c、python3、ninja、pkg-configdocs/workflow/requirements/macos-requirements.mdWindowsGit ≥2.22、Visual Studio 2022 17.8.NET 桌面 C 桌面工作负载、启用长路径docs/workflow/requirements/windows-requirements.md 依赖装好后SDK 不用手动找。仓库根目录的global.json已声明所需版本11.0.100-rc.1.26420.103跑一次官方脚本即可自动下载到本地.dotnet目录./eng/common/dotnet.sh # Windows 用 eng/common/dotnet.cmd克隆仓库并完成首次构建克隆全量历史约 400–500MB 网络流量检出后本地占 1–1.5GB单平台构建产物会再吃 10–20GB动手前留够磁盘。git clone https://gitcode.com/GitHub_Trending/runtime6/runtime cd runtime构建入口是根目录的build.shWindows 为build.cmd。不带任何参数它会以 Debug 配置构建整个仓库的本机版本日常开发只构建需要的子集更快用-subset指定./build.sh -subset clr # Windows: build.cmd -subset clr常用子集对照子集构建内容clrCoreCLR 运行时 System.Private.CoreLiblibs全部 BCL 类库不含测试hostdotnet 共享宿主及托管库packs共享框架包、归档、安装器monoMono 运行时及其 CoreLib子集可用串联例如./build.sh -subset clrlibs -configuration Release。构建完成后主产物在artifacts/bin/coreclr/OS.架构.配置/如linux.x64.Release里面最关键的三个文件是corerun命令行宿主Windows 下为corerun.exe、coreclr运行时本体Linux 下为libcoreclr.so、System.Private.CoreLib.dll基础托管库。日志在artifacts/log/中间产物在artifacts/obj/coreclr/。认清三大组件与构建配置三大组件的代码位置一目了然CoreCLR 在src/coreclr/、Mono 在src/mono/、类库在src/libraries/、native 依赖host、corehost 等在src/native/。其中 CoreLibSystem.Private.CoreLib是最底层的托管库必须与运行时用同一套配置构建而普通类库可以独立选择自己的配置。构建有三档配置选择取决于你要干什么配置优化断言典型用途Debug无开启调试产品速度最慢Checked有开启CoreCLR 专属CI 跑测试常用Release有关闭性能剖析速度最快 配置组合有讲究改运行时时建议运行时用 Debug、类库用 Release改类库时反过来运行时 Release、类库 Debug这样内循环迭代最快。生成完整 NuGet 包和安装器需要一次构建clrlibshostpacks四个子集产物会落在artifacts/packages/配置/Shipping/。报错速查新手最常碰的 5 个坑现象原因处理提示 required .NET SDK wasnt found本地还没有 global.json 声明的 SDK运行./eng/common/dotnet.sh自动安装到.dotnet克隆时报Unable to create file: Filename too longWindowsGit for Windows 默认 260 字符路径限制管理员终端执行git config --system core.longpaths true并按微软文档启用 Windows 长路径一个未用变量警告直接中断构建仓库把警告当作错误含代码风格警告构建前设环境变量TreatWarningsAsErrorsfalsebuild.sh/cmd 与 dotnet build 都会遵守只传了-rc/-lc却构建测试失败构建 clr 时 apphost 默认走 Debug与测试不匹配构建 clr 时务必同时带上-c或-hc让相关组件保持同配置构建异常缓慢、磁盘告急该仓库本身体量就大确保 10–20GB 可用空间单次只构建必要子集必要时./build.sh -clean清理 artifacts另外两个提醒CoreCLR 与 Mono 都可用时一般日常开发用 CoreCLR需要轻量运行时如浏览器、移动再考虑 Mono二者构建文档分别在 docs/workflow/building/coreclr/README.md 和 docs/workflow/building/mono/README.md。先跑通clr子集、确认产物目录里能找到 corerun再去叠加 libs 和 host 子集——第一次构建不求全量跑通再谈效率。【免费下载链接】runtime.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.项目地址: https://gitcode.com/GitHub_Trending/runtime6/runtime创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表