新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何从 Avalonia 源码构建本地 NuGet 包并写入本机 NuGet 缓存?

发布时间:2026/9/11 17:42:27来源:尧图网络
如何从 Avalonia 源码构建本地 NuGet 包并写入本机 NuGet 缓存?
如何从 Avalonia 源码构建本地 NuGet 包并写入本机 NuGet 缓存【免费下载链接】AvaloniaDevelop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The future of .NET UI项目地址: https://gitcode.com/GitHub_Trending/ava/Avalonia如果你在修改 Avalonia 源码例如在自己的 fork 上加功能或修 bug并希望本机的应用项目能直接引用这些改动后的包手动配置本地 NuGet feed 会很麻烦。Avalonia 的构建系统提供了一个名为BuildToNuGetCache的 Nuke 目标可以直接把构建产物写入本机 NuGet 全局缓存通常是~/.nuget/packages包版本固定为9999.0.0-localbuild。完成这篇文章后你可以在源码上做任何修改重新跑一条命令本机项目里的 msbuild 就会自动拿到新包。前提操作在 Avalonia 仓库根目录进行使用 .NET 10 SDK 与 Nuke 全局工具或用仓库自带的build.sh/build.ps1脚本替代nuke命令。准备条件克隆仓库并安装 SDK 与 workloads以下准备工作来自 docs/build.md克隆仓库必须带上子模块git clone --recurse-submodules https://github.com/AvaloniaUI/Avalonia.git安装 .NET SDK注意是 SDK不是 runtime。所需版本由仓库根目录的 global.json 指定当前为10.0.201且rollForward为latestFeature。Avalonia 不总是跟进最新 SDK固定使用已知兼容的版本安装后如果 SDK 大版本不符构建会直接失败。安装目标平台对应的 .NET workloadsdotnet workload install android ios tvos maccatalyst wasm-tools文档说明macOS 相关 workloads 不是必须的在 Unix 系统上执行该命令需要 sudo 权限。安装 Nuke 全局工具如果不想装也可以全程用仓库里的./build.shmacOS/Linux或.\build.ps1Windows替代下文中的nukedotnet tool install --global Nuke.GlobalTool另外注意更新本地仓库后要确保子模块是最新的否则可能出问题git submodule update --init --recursive执行步骤用 BuildToNuGetCache 构建并写入本机缓存在仓库根目录执行命令来自 docs/nuget.mdnuke --target BuildToNuGetCache --configuration Release这条命令会先生成 NuGet 包再把它们推送进本机 NuGet 全局缓存包版本为9999.0.0-localbuild。文档没有说明--configuration Release是否为必选项——BuildToNuGetCache示例命令带了 Release而普通的CreateNugetPackages默认是 Debug 配置。在仓库内还提供了一个快捷脚本 nukebuild/build-to-cache.sh它通过_build.csproj直接跑同一目标并跳过CompileHtmlPreviewer、Compile、Clean三个任务dotnet run --project _build.csproj -- --target BuildToNuGetCache --skip CompileHtmlPreviewer Compile Clean结果验证与增量更新文档给出的判断方式缓存位置全局包缓存通常是~/.nuget/packages每个包位于packageId 小写/9999.0.0-localbuild目录。构建完成后可以在该目录下按包名找到版本为9999.0.0-localbuild的文件夹即代表已写入成功。每次对 Avalonia 源码做了本地改动后重新运行上面的命令即可它会替换旧包并重置缓存msbuild 会自动拿到新构建的包不需要手动清理缓存或在应用项目里重新还原。如果你是在 macOS 上构建并且依赖原生库docs/build.md 说明构建原生库需要安装 Xcode然后在仓库根目录执行CompileNative任务来构建并安装原生库./build.sh CompileNative替代路径CreateNugetPackages 目标如果不想直接写缓存而是把包产出到目录里自行分发可以使用CreateNugetPackages目标来自 docs/nuget.md# Windows .\build.ps1 CreateNugetPackages # Linux/macOS ./build.sh CreateNugetPackages # 或者已安装 Nuke 全局工具时 nuke CreateNugetPackages生成的 NuGet 包位于artifacts\nuget目录。常用参数# 默认是 Debug 配置加 --configuration 构建 Release nuke CreateNugetPackages --configuration Release # 用 --force-nuget-version 指定包的版本号 nuke CreateNugetPackages --force-nuget-version 11.4.0文档同时列出了这条路径的几个坑也是BuildToNuGetCache存在的理由需要在消费方配置一个本地 NuGet feed 才能使用这些包在非 macOS 系统上构建时Avalonia.Native包不会被构建之后使用Avalonia.Desktop会出现 NuGet 错误版本管理容易出问题。限制与边界包版本固定为9999.0.0-localbuild该常量定义在 nukebuild/BuildParameters.cs用于本地开发引用不是可发布的正式版本号正式发布走的是 docs/release.md 描述的版本发布流程与本文场景无关。CreateNugetPackages在非 macOS 上不产出Avalonia.Native包这一点由文档明确列出文档没有说明BuildToNuGetCache路径是否同样受此影响需要以实际构建结果为准。构建要求 .NET SDK 版本与 global.json 匹配、workloads 已安装在 IDE 中构建遇到Error MSB4062 GenerateAvaloniaResourcesTask时docs/build.md 给出的处理是先手动构建一次Avalonia.Build.Tasks项目或用 Nuke 完整构建一次解决方案。【免费下载链接】AvaloniaDevelop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The future of .NET UI项目地址: https://gitcode.com/GitHub_Trending/ava/Avalonia创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AI写作工具的技术演进与专业应用实践 2026/9/11 18:24:33

AI写作工具的技术演进与专业应用实践

1. AI辅助写作工具的技术演进与现状作为一名在内容创作领域深耕多年的从业者,我见证了AI写作工具从简单的语法检查到如今能够辅助完成专业著作的完整进化过程。2023年最新一代的AI写作助手已经突破了早期工具仅能处理碎片化内容的局限,开始真正具备辅助完…

阅读更多 →
帆软报表合并单元格技巧与应用场景详解 2026/9/11 18:24:33

帆软报表合并单元格技巧与应用场景详解

1. 帆软报表合并单元格的需求场景在帆软(FineReport)报表开发中,经常会遇到需要将连续相同值的单元格合并显示的需求。这种需求在数据报表呈现中尤为常见,比如:销售报表中相同地区的客户需要合并显示人员名单中相同部门的员工需要合并显示库存…

阅读更多 →
Python深度学习电影评论情感分析实战 2026/9/11 18:24:33

Python深度学习电影评论情感分析实战

简介:本资源是一个基于深度学习的电影评论情感分析系统,面向Python初学者与自然语言处理入门学习者,聚焦文本分类实战场景,帮助用户掌握数据预处理、LSTM/BiLSTM模型构建、词向量训练及Web界面部署等核心技能。压缩包共294个文件&…

阅读更多 →
V 语言模板系统完全指南:编译时展开的文本模板指令、变量插值与转义 2026/9/11 18:24:33

V 语言模板系统完全指南:编译时展开的文本模板指令、变量插值与转义

V 语言模板系统完全指南&#xff1a;编译时展开的文本模板指令、变量插值与转义 【免费下载链接】v Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C > V t…

阅读更多 →
airi 项目实战:基于 VueUse useFileSystemAccess 在浏览器中创建、读取与写入本地文件 2026/9/11 18:24:33

airi 项目实战:基于 VueUse useFileSystemAccess 在浏览器中创建、读取与写入本地文件

airi 项目实战&#xff1a;基于 VueUse useFileSystemAccess 在浏览器中创建、读取与写入本地文件 【免费下载链接】airi &#x1f496;&#x1f9f8; Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, w…

阅读更多 →
基于深度学习的智能合约安全检测:从操作码到BiLSTM+Attention 2026/9/11 18:21:33

基于深度学习的智能合约安全检测:从操作码到BiLSTM+Attention

简介&#xff1a;面向计算机、通信、人工智能及自动化等专业学生与从业者&#xff0c;这份项目以深度学习为主线&#xff0c;完成区块链智能合约安全检测系统的设计与实现&#xff0c;整体覆盖合约风险分析、检测结果展示与前端交互流程。所有代码均经过调试测试&#xff0c;可…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞