上周,Microsoft 团队发布了 Aspire 13.5,此次更新焕新了仪表板和 aspire.dev 主页,扩展了 AppHost 与开发者交互的方式,并为应用程序的部署方式增加了更多灵活性。
根据发布说明,此前 Aspire 13 的工作重点是推动该工具扩展到更多语言、部署目标和编码智能体,包括功能完全对等的 TypeScript AppHost、新的命令行功能,以及 Kubernetes 和 Docker Compose 部署集成。此次发布则暂时放缓扩展脚步,着重焕新外观,并增加多项呼声已久的易用性功能。
最直观的变化体现在视觉方面。正如开发团队所说,仪表板*“换上了新装”*,但整体布局和功能保持不变,因此所有内容仍位于用户熟悉的位置。Microsoft 还表示,它检查了更新后各个界面的对比度和无障碍性,以确保新外观适合所有人使用。
仪表板还获得了一些规模较小但经常被请求的改进,包括不区分大小写的控制台日志搜索、按时间戳或精确数值比较筛选日志和跟踪、资源服务连接中断时更顺畅地重新连接,以及用更友好的健康检查失败消息取代原始异常堆栈。

新的仪表板外观,来源:Microsoft 官方发布博客文章
Interaction Service 允许资源命令在开发者当前工作的界面中请求输入或显示通知,现在它还支持文件导入。据介绍,命令可以打开一个接受 JSON 或 YAML 文件的文件选择器、实施大小限制,并向 AppHost 提供一个可供读取的流,从而不再需要像过去那样,先将文件放入指定目录,再运行脚本。
耗时较长的任务还可以显示带有可选取消功能的进度对话框,命令也可以声明具名参数,这些参数会在仪表板中显示为输入控件,并在命令行界面中显示为选项。据报道,这些功能共同为集成作者提供了完成完整设置或导入流程所需的能力。
Aspire 13.5 还在仪表板中加入了终端。据介绍,添加 WithTerminal() 可以为资源提供交互式终端会话,适用于 shell、REPL 以及其他需要真实输入和输出的工具。用户可以在其中输入内容、在副本之间切换,并在不停止会话的情况下返回常规控制台日志;多个查看者还可以同时连接到同一进程。该功能及其配套命令在此次发布中被标记为实验性功能。
另一项值得注意的变化是,TypeScript AppHost 现已正式发布,不再需要选择启用实验性功能。随着这一里程碑的实现,Interaction Service、文件上传和进度对话框现在可以在 C# 和 TypeScript 中以相同方式运行。此次发布还通过向 TypeScript 模型添加自定义健康检查和容器文件复制功能,补齐了剩余差距。项目和可执行资源还可以直接通过 AppHost 获得 HTTPS 开发者证书,不过这些 API 仍处于实验阶段。
在部署方面,此次更新允许应用程序为 Kubernetes 工作负载建立持久卷模型,并在将卷绑定到项目或容器之前配置存储类、容量和访问模式。随后,Aspire 会生成持久卷声明,并据此呈现工作负载。
新方法还允许应用程序引用跨资源组、订阅和租户的现有 Azure 资源,从而将环境详细信息排除在 AppHost 源代码之外,同时将引用和部署意图保留在模型中。另外,Aspire 命令行界面现在可以通过 Homebrew、WinGet、npm、Nix、mise 和 NuGet 等包管理器进行安装和更新。
Visual Studio Code 扩展也已更名为 Aspire,并获得多项新功能,包括在侧边面板中打开仪表板、支持 Bun 和 MAUI 调试,以及直接在树视图中显示资源命令。

更新后的 VS Code 扩展外观,来源:Microsoft 官方文档
此次发布还包含多项破坏性变更,其中包括将 ServiceProvider 属性重命名为 Services,以及弃用 GitHub Models 集成。仪表板中的 AI Assistant 聊天功能也已在此版本中移除。
感兴趣的读者可以在 Aspire 文档网站上查看完整的 Aspire 13.5 新增功能页面,其中包括完整的功能清单、迁移说明和破坏性变更。
原文链接:https://www.infoq.com/news/2026/08/dotnet-aspire-13-5-release/





