欢迎光临
我们一直在努力

微软技术周报 2026-09-14~09-21:.NET 11 Runtime Async 重构、VS 2026 正式 GA、CVSS 10.0 Foundry 漏洞

本期聚焦技术动态,不含财务信息。信息来源:.NET Blog、Microsoft Learn、dotnet/core Release Notes、ASP.NET Core Blog、Microsoft Foundry Blog、GitHub Changelog、VS Code Release Notes、Windows Release Health、MSRC / SecurityWeek / The Hacker News、Microsoft 365 Message Center、Power Platform 官方博客、Azure Updates、.NET Foundation、InfoQ 中文、博客园、CSDN、稀土掘金等中英文官方与媒体报道。


概览

核心一句话:本周是 9 月 15 日的"双响炮"——一边是 Stephen Toub 的年度长文《Performance Improvements in .NET 11》公布 Runtime Async 重构(同步完成时结果直接穿透调用链、中间 Task 分配归零),另一边是 Visual Studio 2026 正式 GA,BYOK 让任何模型都能接进 IDE、五个 Copilot Agent 直接连上调试器和性能分析器的实时数据;安全侧则是 CVSS 10.0 的 Azure AI Foundry 认证缺失漏洞(CVE-2026-85889)被披露并已在服务端修复。

分类条数一句话亮点
C# 5 union types 转正后的第一次真实检验:编译器保障穷尽性、TryGetValue 免装箱,但 System.Text.Json 缺少类型判别字段导致无法往返序列化
.NET 10 《Performance Improvements in .NET 11》:Runtime Async 让两层调用快 3 倍且零 Task 分配;JIT 打通泛型虚调用去虚拟化,6.7ns/24B → 1.76ns/0B
ASP.NET Core 7 OpenAPI 3.2 成为默认、[ShortCircuit] 跳过中间件管道、端点筛选器可观察参数绑定失败;Blazor 静态 SSR 拿到客户端验证与 CacheView
MAUI 6 Android/iOS/Mac Catalyst 全面切换到 CoreCLR,Mono 时代结束;Android 增量构建 68s→52s、清单改动 40s→11s、ARM64 包体 −665KB
VS / VS Code / AI 编程 8 Visual Studio 2026 GA(9/15):BYOK + 5 个 Copilot Agent + 挂起事件减少 50%;VS Code 1.138 带来 auto 模型三档路由与 Dev Container Agent 会话
Copilot / Power Platform / M365 9 Grok 进入 Word/Excel/PowerPoint(9/12,默认关闭);联邦 MCP 连接器 GA(不索引、不存储、只读);Copilot Cowork GA + Copilot Studio 自然语言建应用
安全 5 CVE-2026-85889(CVSS 10.0,Azure AI Foundry 认证缺失)+ 18 个云/AI 服务漏洞一轮修补;带外 KB5129194/5129195 修 2 个本地提权
Windows(5 条) 5 9/8 KB5124008 带来可移动/可缩放任务栏;带外更新修 RDS、Hyper-V 共享文件夹、USB 音频;Credential Guard 域信任丢失已缓解
Azure 5 ARO 托管控制平面预览;PostgreSQL 技能 + MCP 插件上线;Application Gateway 支持 HTTP/3 over QUIC
其他简报 8 .NET Foundation 全体会员迁移 Outseta;Agent Governance Toolkit(AGT)开源;.NET Conf 11/10–12、Ignite 11/17–20

在这里插入图片描述


一、C#:union types 转正后的第一次真实检验

上周我们记录了 C# 15 随 .NET 11 RC1 转正(union types、closed hierarchies、扩展索引器、带标签 break/continue、集合表达式参数、非虚静态接口成员六项退出 preview)。这一周社区把新特性真正拿去用了,反馈也回来了——好评和"硬伤"来自同一个特性。

1.1 union types 到底解决了什么:从 OneOf 到语言原语

union 的语法极简,语义却重。它不要求你把已有类型重写进共同基类,而是把已经存在的类型组合成一个命名的封闭集合:

public record class Cat(string Name);
public record class Dog(string Name);
public record class Bird(string Name);

// Pet 恰好是 Cat / Dog / Bird 中的某一个
public union Pet(Cat, Dog, Bird);

Pet pet = new Dog("Rex");

string name = pet switch
{
Dog dog => dog.Name,
Cat cat => cat.Name,
Bird bird => bird.Name
// 没有 _ 丢弃分支,编译器验证穷尽性
};

关键差异在于"编译器保障"这四个字。多年来 C# 开发者用 OneOf<T0, T1> 之类的 NuGet 包近似实现这个模式,但 OneOf 的穷尽性只在运行时兜底、依赖外部包、且 IDE 对 switch 完整性的提示有限。C# 15 的 union 是编译期强制、零依赖、IDE 完全感知:往 union 里加一个新 case 类型,所有没更新的 switch 会立刻被编译器标红。

对值类型场景还有一条性能路径:编译器在模式匹配时会自动使用 union 暴露的 TryGetValue 方法,走免装箱分支。C# 首席设计师 Mads Torgersen 对这件事的评价是:“This is how unions should be.”

代价也要说清楚:union 是封闭的,扩展候选类型集合意味着重新编译——这是编译期穷尽性的固有取舍,不是实现缺陷。

1.2 正在被挑出的硬伤:System.Text.Json 无法往返

社区讨论中最集中的批评恰好落在这个刚转正的功能上:union 无法通过 System.Text.Json 完成序列化与反序列化的往返处理,因为序列化输出里不包含类型判别字段(type discriminator)。

这个问题在 API 场景下相当致命。考虑一个返回 union 的 Minimal API 端点:

public record Success(string Message);
public record Failure(int ErrorCode);
public union Result(Success, Failure);

app.MapGet("/compute", () => (Result)Compute());

得到的 JSON 是一个裸对象,反序列化端无从判断它本该还原成 Success 还是 Failure——如果两个 case 的字段结构碰巧兼容,就会静默还原成错误的类型。

目前的实践建议是:当 case 类型之间存在共同基类、且契约允许带判别字段时,用 closed hierarchies 而非 union。closed 修饰的基类配合多态 JSON 序列化(写入 $type 判别符),能完整往返;union 的优势场景是"契约本身不含判别字段"或者"case 是互不相关的基础类型/你不控制的既有类型"。ASP.NET Core 11 在 OpenAPI 文档里把 union 呈现为 anyOf,这倒是如实反映了它的语义——只是 anyOf 本身也不携带判别信息。

微软 .NET 团队的 Jon Galloway 在 Reddit 讨论中回复称,发布文章列出的是相对于上一个预览版的变化,而不是相对于 .NET 10 的变化——这解释了信息落差,但没有解决序列化问题本身。做 API 设计的话,这是本周期最需要在设计阶段就决策的一件事。

1.3 另外两个值得上手的特性

集合表达式参数填上了集合表达式语法的一块空白——以前你没法在 […] 里给底层集合的构造函数传参,现在可以:

List<string> names = [with(capacity: 100), "John", "David", "Sarah"];

HashSet<string> set = [with(StringComparer.OrdinalIgnoreCase), "Hello", "HELLO", "hello"];

第二个例子尤其实际:以前要创建带自定义比较器的 HashSet 必须写成 new 表达式,现在收集器语义和初始化语义能写在同一行里。

编译器 API ITypeSymbol.UnionCaseTypes 让分析器可以直接读取某个 union 的全部 case 类型。这是 IDE 能做穷尽性提示、第三方工具链能做增量检查的前提——没有这个 API,工具层就只能靠字符串匹配或反射猜。


二、.NET:《Performance Improvements in .NET 11》与 Runtime Async

这是本周技术含量最高的一份材料。 9 月 15 日,微软杰出工程师 Stephen Toub 发布了年度惯例长文《Performance Improvements in .NET 11》。文章以电影《摇滚万万岁》的梗开场——别人的放大器最高旋到 10,Nigel 的定制款能到 11——而 .NET 11 的定位正是如此:没有单点革命,靠成百上千个微小改进叠加出复利。

规模上:18 个章节、136 组对照数据、263 个 PR、29 位外部贡献者,原文五万多词。用一句话概括它的结论:你什么都不用改,升级就变快。没有新 API 要学、没有配置要打开、没有"高性能模式"要手动切换。

在这里插入图片描述

2.1 Runtime Async:近十年 CLR 异步底层最大的一次重构

这是本版本最重要的架构级变化,也是全篇的核心。

问题在哪:传统 C# async 方法依赖编译器生成的状态机来在 await 处挂起和恢复。每传一次结果,就要包装一个 Task 对象;调用链有 N 层,中间就可能积累 N−1 个纯粹为了实现细节而存在的 Task。这些 Task 从来不是 API 契约的一部分,却实实在在压着 GC。

Runtime Async 怎么改:把状态机的记账工作从编译器挪进运行时。同步完成时,返回值直接穿透调用链,只有最外层(真正被观察的那一层)才需要包装 Task。实测收益:

场景.NET 11 变化
两层 async 调用(同步完成) 速度 提升 3 倍以上,中间 Task 分配完全消除
真实挂起(suspend)路径 耗时减少一半,每次挂起少分配 80 字节
异常穿过 10 层调用 不再重复存储 10 次异常信息
实时堆栈跟踪 从 13 帧降到 5 帧,直接显示 OuterAsync → MiddleAsync → InnerAsync 的真实调用链

最后一条对可观测性的价值可能比性能数字更直观。当 async 方法挂起时,物理线程栈会展开,续体可能在线程池的另一个线程上运行——采样型 CPU 分析器能看到 CPU 花在哪,但没法可靠地把这些采样接回逻辑 async 调用链。Runtime Async 让这条链路在诊断工具里第一次变得清晰可见,且不影响异常堆栈(异常堆栈在旧模型下已有清理机制)。

边界要说清楚:Runtime Async 并非让所有异步操作零分配。文章明确指出,如果你把 Task 存进集合、手动挂接续体、或以对象形式观察它,那个对象依然必须存在。它的设计目标是"不为观察不到的边界付费"——收益集中在同步完成且结果直接穿透的常见模式上。

配套的运行时侧优化包括:为同步返回 Task 的方法生成专用的 JIT 编译 async 版本、尾部合并挂起点以缩小生成代码、续体缓存、热 async 路径的分层编译、以及识别常见 Task/ValueTask 工厂并恢复 tail-await 优化。还有一项很实用的优化:在没有环境状态需要跨 await 携带时,跳过 ExecutionContext 的捕获与恢复——这条快路径覆盖 Task、Task<T>、ValueTask、ValueTask<T>,对高频使用 ConfigureAwait(false) 且很少用 AsyncLocal 的代码最有价值。

诊断工具链同步升级:dotnet/runtime#127238 新增了轻量级 async 分析器事件流。它不再把每一次微小状态转换都作为完整事件发出去,而是在每线程缓冲区里写入紧凑记录,对时间戳和指令指针做增量编码,再批量刷出;同时在调用续体时往物理栈里放一个可识别的小包装帧,让分析器能把这个帧当作锚点,把普通 CPU 采样接回事件流表示的逻辑 async 调用栈。效果:开销 低于 1%,追踪数据量缩小一个数量级。#129043 及其后续 PR 把同一套方案扩展到了现有编译期状态机——所以不 opt-in Runtime Async 的应用同样受益,工具侧拿到的是两种实现统一的表示。

关于开发者该做什么:文章的答案是"基本什么都不用做"。继续按可读性写异步代码,需要拆辅助方法就拆,默认用 Task、在权衡确实契合时才用 ValueTask,不要仅仅因为今天的实现可能分配中间 Task 就去扭曲源码删掉一个干净的 await。降级策略应当作为一个"just work"的实现细节。

启用方式:以 net11.0 为目标的项目不再需要 EnablePreviewFeatures;运行时库自身已经使用该特性,应用侧可通过 UseRuntimeAsync 项目属性控制进出(同样支持按项目 opt-out)。截至 9 月 14 日,runtime async 跟踪标签下已有 235 个 PR——这个规模本身就说明了工程量。

2.2 JIT:泛型虚调用去虚拟化,被卡了多年的那条路径

这是全篇技术密度最高的一处改动,也是我最想单独拿出来讲的一处。

为什么泛型虚方法(GVM)一直是 .NET 最慢的派发形态:普通虚方法有 vtable 槽位,JIT 知道该去哪儿找。但接口上声明的 int SizeOf<T>(T value) 没有唯一槽位——每个类型实参实例化都是不同的方法体。解析它意味着一次运行时查找,而查找结果对 JIT 来说是一个不透明的函数指针。不透明就不会内联,不内联逃逸分析就永远看不穿这个调用。

改造分三步(三个 PR 顺序推进):

  • dotnet/runtime#120866(2025 年 11 月)——解锁的那一个。JIT 过去会把 ldvirtftn 的调用目标溢出到临时变量再设置参数,这个溢出动作足以让派发在后续整个流水线里保持不透明。去掉这个溢出,目标求值就能在合法的地方提前到参数求值之前。
  • dotnet/runtime#122023——教 JIT 去虚拟化非共享 GVM,并在调用中携带所需的泛型上下文,让间接派发变成直接、可内联的调用。
  • dotnet/runtime#128702——扩展到共享 GVM 以及需要实例化 stub 的默认接口实现。
  • 数字(BenchmarkDotNet,同一份代码在 .NET 10 与 .NET 11 上对照):

    方法运行时平均耗时比值分配
    NonShared(int 实例化) .NET 10.0 6.678 ns 1.00 24 B
    NonShared .NET 11.0 1.764 ns 0.26 0 B
    Shared(string 实例化) .NET 10.0 7.166 ns 1.00 24 B
    Shared .NET 11.0 1.764 ns 0.25 0 B

    那 24 字节是怎么消失的,这才是真正有意思的部分。这笔分配从一开始就不是调用的目的——new Processor() 存在只是为了让接口转换有个接收者。在 .NET 10 里,因为调用不透明,JIT 必须假设接收者逃逸了,于是 Processor 被放到堆上,每次调用 24 字节。一旦调用被内联,逃逸分析就能证明这个对象从未离开当前栈帧:实例被栈分配、没有任何代码读它、然后整个折叠掉,Unsafe.SizeOf<T>() 在同一趟里变成常量。

    3.8 倍的提速是真实的,但**“分配"那一列的 0 才是会在 GC 密集服务里显现出来的东西**——它把 P99 抖动从"每次调用一次堆分配"变成"没有”。

    一个必要的前提提醒:这条路要求 JIT 在调用点知道接收者的精确类型(本例中就是本地构造的 sealed 类型)。真正多态的调用点仍然依赖 dynamic PGO 的守卫式去虚拟化——你拿到的是"类型检查 + 内联快路径",而不是直接调用。如果你写 visitor 接口、泛型序列化钩子,或任何"由方法而非类型携带类型参数"的抽象,这是值得在自己代码上实测的一处改动。

    2.3 逃逸分析、边界检查与断言传播

    可空类型装箱的内部化是另一处高价值优化:JIT 现在能看透 Nullable<T> 的装箱操作,把临时堆分配彻底干掉。最直观的例子是 int? 的格式化:9.58 ns → 1.99 ns,提速近 5 倍。Tier0 编译器现在也具备装箱优化能力,这对启动阶段和分析器里的分配噪声都有正面影响。

    边界检查消除扩展到更多循环变体。C# 是内存安全语言,array[i] 这类访问由运行时保证在界内——代价是 JIT 需要证明它在界内,否则就注入一次检查:

    ; x64:一次典型的边界检查
    cmp ecx, dword ptr [rax+8] ; 比较索引与数组长度
    jae THROW ; 无符号比较:索引 >= 长度则抛出
    mov edx, dword ptr [rax+rcx*4+16]

    .NET 11 的新增覆盖包括:!= 形式的循环克隆、把 return 语句更聪明地纳入范围检查克隆、以及更智能地跟踪 Span 切片以减少重复检查。注意前提:!= 循环克隆仅支持步长为 1 或 −1,i += 2 不适用——并非所有写法都能自动受益。

    断言传播(assertion propagation)让 JIT 从已成功完成的操作中提取隐含事实。最简单的例子:数组创建成功,就意味着请求的长度不是负数。这一改进使 CovariantArrayStore 基准提升约 16%。同一方向上还有写屏障优化(协变数组存储、结构体整体拷贝)和 GC 依赖句柄的随龄增长机制(#78746)——ConditionalWeakTable 底层的依赖句柄过去不随引用对象老化,导致每次 gen0/gen1 回收都要重新扫描;现在句柄会随 referent 晋升,年老的句柄可以被年轻回收直接跳过。压缩式回收里的 vxsort 向量化排序也扩展到了 Arm64(#110692)。

    2.4 向量化、数值计算与线程池

    • AVX-512 嵌入式广播与掩码技术减少了内存占用,Vector256 乘法基准显示约 42% 的提速;AVX-512/AVX10.2 机器上的浮点转换不再调用辅助函数,提高了内联效率。
    • BigInteger 的存储单元(limb)从 uint 换成 nuint(#125799):64 位机器上每个 limb 从 32 位翻倍到 64 位,同代价的 64 位运算一次能处理两倍比特。三角函数也大幅提速。
    • 线程池小任务调度开销下降(#122726):去掉不必要的内存栅栏与共享状态更新、改为按批而非按任务与控制器交互、减少信号量自旋、只在队列确实需要时才请求新 worker——顺带也少了"队列刚空就被唤醒"的无用 worker。
    • 运行时内部哈希结构:VM 内多张哈希表(如 EEHashTable)引入基于纪元的回收(#124822),读多写少场景下读者不再需要进入协作式 GC 模式;哈希函数从逐字节换成每次消费 4 字节的 xxHash(#129640)。

    2.5 一个必须提前排进预算的变化:CPU 底线抬高了

    这是本次升级里最容易被忽略、但影响部署规划的一条:.NET 11 把 JIT 与 AOT 编译的最低 x86/x64 基线从 x86-64-v1 抬到 x86-64-v2(Apple、Linux、Windows),意味着运行时可以假定 CX16、POPCNT、SSE3、SSSE3、SSE4.1、SSE4.2 存在。

    更值得注意的是 ReadyToRun 目标:Linux 与 Windows 上从 x86-64-v2 再抬到 x86-64-v3,新增 AVX、AVX2、BMI1、BMI2、F16C、FMA、LZCNT、MOVBE 假定。从 .NET 11 起,缺少新 JIT/AOT 基线的老旧硬件可能无法运行 .NET 11。 对部署到长生命周期设备或自管服务器的软件来说,CPU 资产盘点应当写进升级计划。

    Arm64 侧按操作系统分化:Apple 维持 M1 基线不变;Linux 的 JIT/AOT 基线仍是 armv8.0-a,但 ReadyToRun 镜像现在需要 LSE,缺 LSE 的设备可能要承担额外 JIT 工作;Windows 的 JIT/AOT 基线提到 armv8.0-a + LSE,ReadyToRun 提到 armv8.2-a + RCPC。微软的说法是这能降低维护复杂度、避免预编译产物去迁就过低的下限,同时允许更激进的代码生成。

    2.6 MAUI 全面投奔 CoreCLR(详见第四章)

    值得注意的是,运行时统一这件事是跨板块的:MAUI 在 Android、iOS、Mac Catalyst 上正式切换到 CoreCLR,最后一批还在用 Mono 的 MAUI 平台完成迁移。移动应用由此与 ASP.NET Core、云服务、桌面 .NET 共享同一个运行时、同一个 JIT、同一个 GC、同一套诊断设施——也就意味着上面这一整节的所有性能改进自动落到移动端,同时引入了 CoreCLR 的分层编译、ReadyToRun 和 PGO,并为 NativeAOT 打下共同基础。

    2.7 平台与 SDK:这一周的其它 .NET 侧动作

    • F# 11 成为默认语言版本:记录展开(record spreads)与直接构造委托转正;字符串插值现在编译为 String.Concat 而非基于反射的 printf 引擎,F# 发行说明指出这使它能够与裁剪和 Native AOT 配合使用;新增记录与 union 的免反射 ToString 输出、inheritdoc 与 include 文档标签支持、以及新的 Async.RunSynchronouslyImmediate 函数。
    • SDK:dotnet test 支持移动与桌面目标——现在可以运行以 Android、iOS、macOS、Mac Catalyst 为目标的测试项目,并为每个平台提供新的项目模板;新增运行级选项可设置超时、在失败达到指定次数后停止运行、为每个测试应用分配独立结果目录。
    • 容器发布:设置 SOURCE_DATE_EPOCH 后可在不同构建间产出相同摘要的镜像;若目标注册表中已存在镜像清单则跳过上传。这两条对 CI 缓存与供应链可复现性都有直接价值。
    • dotnet format 支持基于文件的程序;Negotiate 身份验证支持 TLS 通道绑定。
    • HTTP/1.1 解析器去异常化、zstd 支持、HTTP/3 首请求提速、Kestrel TLS 握手可观测性(网络栈部分见第三章)。
    • .NET 9 servicing(9/16):.NET SDK 9.0.121 / Runtime 9.0.20 发布,修复 CVE-2026-58649 与 CVE-2026-69806(Oracle Linux 等发行版同步跟进)。注意 .NET 9 已进入支持尾声——.NET 8 与 .NET 9 都将在 2026 年 11 月 10 日结束支持,与 .NET 11 GA 同一天。
    • **Aspire 13.5.4 补丁(9/15)**发布。Aspire 的支持策略是"任一时刻只支持最新版本":下一个 minor 发布时,当前版本即退出支持——这意味着升级节奏要跟上,不能长期停在某个 minor 上。
    • 升级路径建议:如果你还在 .NET 9,时间是以周计而非以月计。推荐路径是先升到 **.NET 10(LTS,支持至 2028 年 11 月)**作为安全桥接,GA 之后再评估 .NET 11——不要在截止压力下直接跳到刚 GA 的版本。

    三、ASP.NET Core

    3.1 网络栈:HTTP/3 与 HTTP/2/3 的收尾工作

    ASP.NET Core 11 在网络栈上呈现的是一条清晰的"现代化收尾"主线:HTTP/3 首请求提速、HTTP/2 与 HTTP/3 的尾部标头超时、HTTP/1.1 解析器去异常化、zstd 压缩支持、以及 runtime-async 带来的吞吐改善。这部分改动大多不需要开发者动代码,属于"升级即受益"。

    3.2 OpenAPI:3.2 成为默认,语义映射更细

    默认面向 OpenAPI 3.2,并补齐了几处长期缺失的语义映射:

    • HTTP QUERY 被识别为已知操作类型;
    • 文件下载类终结点(FileContentResult、FileStreamResult 等)自动映射为 type: string, format: binary 架构;
    • SSE(服务器发送事件) 端点用 3.2 的 itemSchema 描述——这是 3.2 里比较实用的新能力,让流式端点的响应体不再只能写成模糊的 string;
    • [Obsolete] 自动映射为 deprecated: true;
    • 构建时生成文档可用 OpenApiGenerationEnvironment 指定环境。

    API 文档在今天的定位早已不是"开发时的便利"。它同时服务于前端、移动端、集成团队、API 客户端和自动化测试系统——契约的机器可读性随着应用规模增长而变得越来越关键。

    3.3 Minimal API:端点筛选器能看见绑定失败了

    一个相当实际的改进:端点筛选器现在可以观察参数绑定失败,并自定义响应。

    过去,绑定失败会直接产生 400,筛选器管道根本不参与——结果就是应用里的错误响应格式四分五裂:有的地方是 ProblemDetails,有的地方是自定义结构,有的地方是框架默认。现在你可以集中维护一致的响应契约:

    app.MapPost("/orders", (OrderRequest req) => Results.Ok())
    .AddEndpointFilter(async (ctx, next) =>
    {
    var result = await next(ctx);
    if (result is BadHttpRequestException bre)
    {
    return Results.Json(new
    {
    success = false,
    message = "Invalid request",
    errors = Array.Empty<string>()
    }, statusCode: 400);
    }
    return result;
    });

    配套的两条:C# union types 在凡是用 System.Text.Json 的地方都可用(OpenAPI 里呈现为 anyOf),以及异步验证端到端打通——AsyncValidationAttribute 配合 IAsyncValidatableObject,查库、调远程 API 的验证规则不再阻塞线程。

    还有一个值得单独记一笔的 [ShortCircuit] 特性:路由匹配后立即执行,跳过其余中间件管道。健康检查端点、robots.txt、静态元数据这类请求不需要走完整的认证、授权、日志中间件链,直接在路由层短路掉。

    3.4 Blazor:AI 组件登场,静态 SSR 拿到客户端验证

    Blazor 是本次 ASP.NET Core 更新中篇幅最大的一块。

    静态 SSR 的客户端验证:以前服务端渲染的表单要往返一次服务器才能显示验证反馈;现在静态 SSR 表单支持客户端验证,同时继续以 .NET 模型作为验证规则的唯一来源。这对于"表单多但不需要整体交互化"的业务应用是实质改善——不用为了表单体验把整个应用变成 interactive。

    表单异步验证:支持需要外部操作的验证规则。典型流程是"格式校验 → 查数据库 → 检查可用性 → 显示结果",这是本地模型无法独立判断的部分。

    实验性 Blazor AI 组件(Microsoft.AspNetCore.Components.AI 包)是新增项里最值得关注的。它针对的场景包括流式聊天、富文本与工具渲染、人工审批流、以及类型化/共享/预测性 UI 状态,并支持通过 AG-UI 协议接入远程 Agent。设想一个 CRM:用户 → AI 助手 → 读取客户上下文 → 建议动作 → 请求审批 → 执行工具。Blazor 的组件模型确实是承载这类交互的自然位置。

    但必须强调:这些组件是实验性的、预发布状态,不应被当作已定型的生产 API。官方对迁移建议的表述也很克制——“不要因为 .NET 11 是新的就采用它,采用那些能解决你应用里真实问题的部分”。

    其它值得记的变化:

    • QuickGrid 把分页与排序状态搬进 URL(?page=2&sort=Name),天然支持链接分享、浏览器前进后退和静态 SSR;新增行点击事件。
    • Virtualize 增强:支持不等高项、原生滚动锚定、AnchorMode(Start/End,分别适合信息流与聊天)、以及编程式滚动 ScrollToItemAsync。
    • 静态 SSR 拿到 TempData 与会话持久化,以及 CacheView 用于缓存子树渲染输出。
    • 服务器触发线路暂停:计划停机、实例排空时可优雅暂停电路;标签页隐藏自动暂停(AutoPause)降低空闲资源占用。
    • WASM 支持 IHostedService 与环境变量配置;WithBrowserOptions 可在服务端配置客户端行为。
    • Blazor Web Worker 模板改名(原项目模板名不再暗示只有 WASM),生成的 worker 客户端支持 InvokeVoidAsync、取消与超时。
    • 新的 Gateway 开发服务器(Microsoft.AspNetCore.Components.Gateway)取代 WebAssembly.DevServer 服务独立 Blazor WebAssembly 应用,内置 SPA 回退路由。这是工具链变更,独立 WASM 项目需要相应调整引用的包。
    • Blazor Web App 模板内置容器支持,方便打包进容器镜像 → 注册表 → 云/K8s 的部署链路。
    • MCP 服务器模板随 SDK 捆绑:dotnet new mcpserver,AI Agent 工具一键起步。这一点和 .NET 官方 MCP C# SDK v2.0(默认无状态协议,便于用 ASP.NET Core 构建和扩展 AI 工具)是同一方向的两个落点。

    四、.NET MAUI:Mono 时代的最后一页翻过去了

    4.1 核心变化:CoreCLR 成为 MAUI 的运行时

    .NET 11 起,MAUI 在 Android、iOS 和 Mac Catalyst 上正式切换到 CoreCLR——最后一批还在用 Mono 的 MAUI 平台完成迁移。对开发者而言"采用"这件事简单到几乎没有动作:以 .NET 11 为目标,应用就跑在 CoreCLR 上。

    意义不止于性能数字。切换之后,移动应用与 ASP.NET Core、云服务、桌面 .NET 共享同一个运行时、同一个 JIT、同一个 GC、同一套诊断设施和性能改进。它同时引入了 CoreCLR 的分层编译、ReadyToRun 和 PGO,并为 NativeAOT 打下共同基础。运行时统一后,性能优化与诊断工具链的复用度显著提高——但也别指望"移动端自动变快一个档",具体收益仍取决于平台和负载。

    4.2 Android 的"三连"优化:构建、包体、启动

    维度改进数据
    构建更快 普通托管源码改动 68 秒 → 52 秒
    清单(manifest)改动 40 秒 → 11 秒
    类型映射生成 3.2 秒 → 0.8 秒
    包体更小 Android trimmer 现在移除 IJavaObject 类型中未使用的方法 ARM64 包减小约 665KB(开启 R8 约 718KB)
    启动更快 Release 构建默认包含部分 ReadyToRun 编译 基础模板快 2.4%,示例模板快 4.5%
    Shell 应用延迟加载未使用的 tab 基础设施 冷启动平均快约 36ms

    清单改动从 40 秒降到 11 秒这个数字,对日常开发节奏的影响可能比启动快 2.4% 大得多。

    4.3 dotnet test 移动端测试工作流:补齐了一块明显短板

    这是 RC1 最有分量的更新。dotnet test 工作流扩展到 Android、iOS、tvOS、macOS 和 Mac Catalyst,测试直接在设备/模拟器或桌面目标的应用进程内运行。配套的新项目模板包括 androidtest、iostest、tvostest、macostest、maccatalysttest:

    dotnet new androidtest -n MyTests
    cd MyTests
    dotnet test

    测试框架不限于 MSTest——任何 Microsoft.Testing.Platform 支持的框架(如 NUnit)都可以配置。另外,仅 Instrumentation 的 Android 项目现在可以用 dotnet run 直接跑,不需要声明 Activity;BenchmarkDotNet 这类无头设备测试工具也因此可用了。

    MAUI 的单元测试与 UI 测试长期难以搭出顺畅的工程化流程,现在这条路官方修通了。

    4.4 控件、平台特性与 XAML

    • TabbedPage 徽章:子页面可通过 BadgeText、BadgeColor、BadgeTextColor 附加属性显示徽章,Android、iOS、Mac Catalyst、Windows 全支持初始设置与运行时更新。小红点提醒这种高频需求终于有了官方方案。
    • SwipeItem 显式颜色:新增 SwipeItem.IconColor 与 SwipeItem.TextColor,支持 AppThemeBinding。
    • 主题化启动画面:MauiSplashScreen 支持暗黑模式独立配置(DarkFile、DarkColor、DarkTintColor),避免"配了暗色主题但启动时闪一下白屏"。
    • BlazorWebView 静态内容缓存:通过 StaticContentCacheControlProvider 可选开启,覆盖 Android、iOS、Mac Catalyst、Windows 和 Tizen。
    • FlyoutPage 迁移 Handler 架构:iOS 与 Mac Catalyst 上默认使用 FlyoutViewHandler,Apple 平台主要多页控件的 Handler 迁移至此完成。
    • Resizetizer 质量可调。
    • XAML 增量热重载:作为预览功能引入,并在 Debug 构建中默认启用。实现方式是用源生成器结合 MetadataUpdateHandler,对已创建的页面做修改而不整体重建 XAML。能处理的范围包括属性变化、添加/移除子项、结构重排序、附加属性、标记扩展、绑定,以及 ResourceDictionary 的更改;同样适用于 dotnet watch。
    • Apple 平台:NativeAOT 和 CoreCLR 应用默认使用 trimmable-static 注册器;macOS 与 Mac Catalyst 的 NativeAOT 构建默认生成 dSYM 调试符号;绑定作者可以把可失败的 Objective-C 初始化器暴露为可空静态工厂方法。

    4.5 Passkeys 进入 MAUI Essentials

    最显眼的新增项是 MAUI Essentials 里的 Passkeys API,在 Android 14+、iOS 与 Mac Catalyst 16+、以及受支持的 Windows 10 版本上驱动原生 Passkey 体验。应用侧调用三个接口:

    Passkeys.CreateAsync(...) // 注册凭证
    Passkeys.AssertAsync(...) // 进行认证
    Passkeys.IsSupported(...) // 检测底层平台是否支持

    边界必须说清楚:这个 API 负责平台侧的 WebAuthn 流程,但刻意把服务器端责任留给了应用——依赖方服务器仍需生成 challenge、提供标准 WebAuthn 选项、并验证返回的断言或证明。信任配置也要自己配齐:Apple 平台需要 Associated Domains 与 Apple App Site Association 文件,Android 侧是 Digital Asset Links。客户端这半边微软帮你做了,服务端那半边还得自己扛。

    4.6 生态视角与支持周期

    同步发布的还有 Syncfusion 的《Build Modern .NET MAUI Apps with .NET 11》网络研讨会(微软 MAUI 首席产品经理 David Ortinau 主讲),覆盖 Shell 路由模板、地图标记聚合、Material 3 支持、安全区/边到边布局、XAML 中的 C# 表达式、以及 MAUI Dev Flow / MAUI Sherpa 这类让 Agent 与运行中应用交互的 AI 工具链实验。会议的核心观点值得记下:AI 辅助开发的价值不只是更快生成代码,也可以是帮助开发者验证、基准测试和理解自己正在构建的应用(升级项目、审查发布文档、运行测试、与运行中的应用交互、基准测试性能、调查启动时间与内存占用、识别减小包体的机会)。

    技术判断:RC1 最值得关注的其实不是某个具体功能,而是 go-live 许可本身——它意味着 MAUI 在 .NET 11 上的形态基本定型,企业项目现在就可以基于 RC1 做升级评估,不必等 11 月正式版。

    支持周期提醒:MAUI 10(2025 年 11 月 11 日发布,最新补丁 10.0.101 于 2026 年 9 月 7 日发布)将在 2027 年 5 月 11 日结束支持。这个周期相对短,需要写进预算规划。

    横向对比(跨平台生态 9 月动态):Flutter 无大版本,stable 频道连续推出 hotfix 至 3.47.4,集中修复 SwiftPM/Xcode 27 构建失败、Impeller 在 PowerVR GPU 上的渲染异常、flutter test 崩溃(占工具崩溃 11.7%)等问题;Kotlin 2.4.20 正式版(9/7)把 Swift 互操作能力全部转正——sealed class 映射为 Swift 枚举、跨语言继承、自动生成 Package.swift;React Native 处于版本空窗期(0.88 开发中),适合消化 0.87 的 Strict TypeScript API 迁移(deep imports 现在是类型错误,opt-out 开关 0.89 将移除);uni-app x 最新版本仍是 5.24,三端蒸汽模式进入稳定修复期。


    五、Visual Studio / VS Code / AI 编程:Visual Studio 2026 正式 GA

    这是本周开发工具侧的头条。 微软在 9 月 15 日发布了 Visual Studio 2026,称其为"首个 AI 原生 IDE",更正式的表述是 Intelligent Developer Environment。三个头条能力:BYOK、五个与实时 IDE 工具链打通的 Copilot Agent、以及挂起事件相比 VS 2022 减少 50%。

    在这里插入图片描述

    5.1 BYOK:把 Agent 基础设施与单一 AI 供应商解绑

    这是架构意义上最重要的变化。在之前的版本里,Visual Studio 的 AI 辅助只能通过 GitHub Copilot 提供,且前提是持有 Copilot 订阅。BYOK(Bring Your Own Key)把 IDE 的 Agent 基础设施与 AI 供应商解绑:

    • 支持的提供方:Microsoft Foundry 部署、OpenAI、Anthropic、Ollama(自托管模型),以及遵循 OpenAI 或 Ollama API 规范的自定义端点;
    • 无需 GitHub 登录:BYOK 处于预览状态,在 Community、Professional、Enterprise 三个 SKU 中默认启用——没有 Copilot 订阅的开发者用自己提供的密钥也能访问 Agent 功能;
    • 新的 Agent harness:BYOK 接入基于 GitHub Copilot SDK 构建的 Agent (Preview) harness,与 GitHub Copilot CLI 同源,微软称其"更少闲谈、更少纠正轮次就能完成任务";
    • 思维强度控制:对暴露该参数的模型提供 low / medium / high 三档 token 预算控制,让团队在例常任务与复杂任务之间调深度与成本。

    必须注意的破坏性变更:旧版 BYOK 在 Ask 与 Agent 模式里的体验已不再支持,团队需要把 BYOK 测试迁移到新的 Agent (Preview);在 18.10 Insiders 1 里配置过的 Ollama 模型需要重新添加。这不是一次 UI 刷新,而是编排行为的迁移——建议记录迁移前的端点、模型 ID、prompt 文件、工具配置和预期输出作为快照,否则改动的行为到底来自模型、提供方、harness 还是扩展更新,将无从判断。

    另外微软明确说明:不是每个模型都支持每一项 Agent Mode 能力。碰到不支持的能力时 Visual Studio 会明确标注,而不是静默失败——但这不意味着模型之间可以互换。工具调用、上下文长度、图像输入、结构化输出和延迟都会改变同一个仓库任务的完成结果。

    对企业团队的实际含义:因为合规、采购、数据驻留或成本原因而选择了非 Copilot 模型的组织,现在可以把那套模型接进 Visual Studio 的完整 Agent 基础设施,不必额外引入 Copilot 依赖。MCP 边界则是另一层控制:Visual Studio 会遵守 GitHub 组织的 MCP 服务器允许清单策略,存在允许清单时未授权的服务器无法连接。BYOK 管的是模型路径,MCP 管的是哪些外部服务能收到上下文或执行动作——这两条应当分别审批、分别记录。

    5.2 五个 Copilot Agent:接的是实时运行时数据,不是源码文本

    这是我认为比"Copilot 聊天更聪明了"重要得多的一处变化。五个具名 Agent 各自接入了 VS 的原生工具链——性能分析器数据、调试器状态、测试运行器输出。它们不只读你的源码,而是观察你的代码实际做了什么。

    Agent接什么做什么
    @debugger 活动调试会话 在实时运行时行为上跑项目、采集真实执行遥测,给出的建议基于观察到的运行时状态(抛了哪些异常、走了哪条路径、哪些变量变了),而非静态分析推测
    @profiler 性能分析数据 对任意 dotnet test 右键"Profile with Copilot":采集 CPU 与插桩数据、提出优化建议、写出基准测试来验证、再重跑确认改善。可用自然语言问性能问题,答案来自真实插桩数据而非通用启发式
    @test 测试框架配置 生成匹配你实际测试框架(NUnit / MSTest / xUnit)的单元测试——框架感知,不是通用样板
    @modernize 升级工作流 针对 .NET 与 C++ 升级的三阶段迁移工作流(评估 → 规划 → 执行),每一步都需你批准后才继续
    Plan 项目级上下文 面向更广泛的 agentic 任务的工程级规划 Agent

    除此之外,自定义 Agent 可以写成仓库里的 .agent.md 文件(存放于 .github/agents/)随代码一起评审,用户级 Agent 则存在用户的 GitHub agent 目录;Agent 可以选择工具、模型和 MCP 连接外部知识。Visual Studio 2026 是微软第一个拥有成文 Agent 扩展模型的 IDE。

    配套的其它更新:Git Agent 可以在聊天里探索 PR,返回的链接能直接打开对应的评论和文件,并支持接 GitHub 与 Azure DevOps 的 MCP 服务器获取更多 PR 上下文;内联分支高亮会在调试时用红/绿标出 && / || 复合条件里是哪个操作数决定了结果(&& 短路为假时标出失败的操作数,|| 为真时标出满足条件的操作数);Attach to Process 支持 Podman 容器;Markdown 编辑器支持 Mermaid 图表渲染;代码覆盖率在所有版本可用;自适应粘贴(粘贴后按 Tab 自动适配命名、格式甚至语言);Setup Assistant 一键安装缺失的 .NET SDK;MCP 服务器认证凭据集中管理;11 套新着色主题。

    安装体验上,VS 2026 与 VS 2022 可以并存,兼容 VS 2022 扩展,并自动迁移设置。

    5.3 C++ 侧:CppCon 2026 与 C++23 收官

    在 CppCon 2026 上,微软分享了 Visual Studio 面向大型 C++ 代码库的演进方向。几个值得记的节点:MSVC Build Tools v14.51 已发布(含 C++23 一致性推进、编译器优化改进、新架构支持、Sample Profile Guided Optimization);v14.52 将于 11 月发布,包含 /std:c++23 开关并将达成 C++23 完整实现——唯一例外是 constexpr cmath 实现,它仍是实验性的、默认关闭(用 /Zc:cmath opt-in)。该开关已在 Visual Studio 2026 Insiders 通道的最新预览编译器中可用。此外 Copilot CLI 与 Visual Studio、VS Code、GitHub Copilot 应用共用同一套 Copilot SDK,装上 C++ 语言服务器插件后可在终端获得接近 IDE 的语义智能。

    5.4 VS Code 1.138 与 GitHub Copilot 周更(9/14)

    auto 模型选择有了三档显式路由,这是本周 Copilot 侧最有结构性的变化:

    档位权衡方向
    efficiency 偏向低成本
    balance 成本/质量/延迟的中间取舍
    intelligence 偏向最高响应质量

    三档从同一个模型池里选取,改变的只是路由权重而非模型目录——即三档不会给你更多或更少的模型可用性。正在向 VS Code、Copilot CLI 和 Copilot 应用铺开。计费上,费用按 auto 实际选中的模型计算,与档位无关;付费订阅用户通过 auto 计费的使用仍保留 10% 折扣。GitHub 把它称为"迈向用户可定制选择的第一步"。

    copilot code review 的几处改进值得单独列:

    • 后续评审中自动把已被处理的评论标记为已解决,只保留未决反馈(但如果有人在回复里要求保留某个问题,会尊重该回复);
    • 应用它的建议时,自动生成提交信息(标题 + 可选描述);
    • 评审可以调用 shell 工具来验证改动(构建、测试、脚本),运行在 agent 防火墙之后;
    • Lite 强度现在使用多个 Agent 的集成结果。GitHub 给出的实验数据:已处理评论高严重度 +47%、中 +31%、低 +11%,同时评审成本降低约 8%。

    Copilot 应用新增 Sentry canvas:可以从 Sentry 崩溃报告直接进入一个已加载错误、堆栈跟踪和相关上下文的 Copilot 会话,走完调查 → 验证修复 → 准备 PR 的路径,缩短"告警触发到 PR 打开"的距离。

    Agents 窗口的几处 Agent 会话治理:

    • 本地 Dev Container 支持:Agent 可以在项目自己声明的工具链与依赖里运行,而不是依赖宿主环境(需要 Docker + 受支持的 Dev Container 配置,渐进式铺开);
    • PR 直接创建:在 Agents 窗口里审阅生成的标题与描述、选择 draft 状态、直接创建 PR 或让 Agent 代劳;
    • 不活跃会话自动标记为 Done:在所有关联 PR 合并后触发,可选在经过一个独立宽限期后删除(opt-in 预览)。

    管理员侧:

    • VS Code Agents 窗口的使用量指标 GA,与企业/组织报告一起提供日活用户数、会话数和用户消息总量以及用户级活动数据——注意这些指标与编辑器窗口的指标是分开的;
    • 仓库自定义属性的取值建议(Copilot 建议,公测),组织与企业所有者可通过 Copilot 策略开关;
    • AI 信用额度超限后可向上申请提额,所有者与计费管理员可在设置中批准、调整或拒绝,批准即恢复 AI 信用访问。该项对使用按量计费的 Copilot Business / Enterprise 计划 GA,但对采用集中托管用户的企业不可用。

    其它同期动作:Copilot CLI 的 Project HydraFusion 进入 /experimental,在本地区、云端与复合模型之间做自动化语义路由;企业托管 Agent 操作权限(9/9 GA)让管理员集中设定哪些 Agent 操作被阻止、需要人工批准或可无提示执行,覆盖 shell 命令、文件读改和网络域名,且托管限制不能被用户或工作区设置、自动批准或此前保存的批准削弱;JetBrains 版 Copilot 的企业托管沙箱(9/8 公测)提供沙箱启用、文件系统/网络访问、代理、开发者工具访问、macOS 钥匙串访问等策略,同版本还带来跨文件光标跳转、聊天中的全局项目上下文、企业策略诊断、子 Agent 模型选择等。

    时间线上的三个待办:9/28 起统一 Copilot 体验默认开启;10/1 起对现有卡/PayPal 客户实行预付费按席位计费;10/2 是四模型弃用清单的执行日(更早的一批 Copilot 模型弃用截止日为 10/19,覆盖聊天、内联编辑、Agent 模式与补全,Business 与 Enterprise 客户已有迁移指引)。模型清单本身本周稳定,无新增(MAI-Code-1-Flash 已下线)。

    一条产品方向信号:微软在 VS Code 里预览了面向 Azure 应用的引导式 Copilot 体验,把"从想法到部署"从开放式聊天改成三段式有检查点的工作流——项目脚手架(用自然语言描述应用,Copilot 提出架构并用表单/选择器补齐缺失信息,写完任何代码前先让你审阅并批准计划)、本地开发(检查运行库、模拟器和工具链并帮你装上缺失部分,自动接好调试配置)、部署(展示将使用的工具、将创建的资源清单和成本估算,用 az / azd 执行,为应用生成基础设施文件以保证测试与预发环境可复现)。首版聚焦 JavaScript 与 TypeScript(Web 应用、Azure Functions、Container Apps、Static Web Apps,支持 PostgreSQL、Azure Storage、Key Vault、Azure OpenAI),.NET 与 Python 在路线图上。这是"从’提问然后祈祷’转向’有明确检查点和真实 UI 的结构化协作’"这一判断的落地。


    六、Microsoft Copilot / Power Platform / Microsoft 365

    6.1 Grok 进入 Microsoft 365 Copilot(9/12)

    微软在 9 月 12 日正式把 xAI 的 Grok 模型加入 Microsoft 365 Copilot,作为 Microsoft Frontier 计划的一部分,Grok 现在可以在 Word、Excel 和 PowerPoint 里被选为模型。发布由 Satya Nadella 宣布,Elon Musk 在 X 上确认。

    管理控制是核心:Grok 默认关闭,管理员必须在 Copilot 设置里的"AI providers for other large language models"下显式启用 SpaceXAI 模型。地理限制同样适用——预览阶段 EU、EFTA 与英国区的 Frontier 客户不可用。SpaceXAI 已被加入微软的 Online Services Subprocessor List,管理员对 Grok 模型处理的数据保有控制权。微软未说明 Office 预览由哪个 Grok 版本驱动(xAI 最新的前沿模型是 2026 年 8 月的 Grok 4.6)。

    至此微软同时在 Copilot 各界面提供三个前沿模型家族:GPT-6 Astra(9/4)、Claude Fable 5.1(9/1)以及 Grok。

    6.2 联邦 MCP 连接器 GA:不索引、不存储、只读

    这是 Model Context Protocol 在 Microsoft 365 里的一次重要里程碑。联邦 Copilot 连接器在 9 月进入 GA,其关键属性是"不索引、不存储":Copilot 通过 MCP 连接第三方数据源,以用户身份实时检索,数据不经过微软服务——这在隐私与合规上是一个显著的差异化点。认证走 OAuth 2.0 并遵循源系统的权限;协议是只读的,Agent 可以搜索和检索内容,但不能向源系统写入。

    GA 时支持的界面为 Researcher Agent、Microsoft 365 Chat 与 Excel 中的 Agent 模式。管理员在 M365 管理中心 Copilot → Connectors 下管理,微软发布的一等联邦连接器会显示为 “Ready” 状态。默认环境组里包含 12 个微软一方 MCP 服务器,全部通过 Entra ID 认证(公开的 Microsoft Learn Docs MCP 服务器除外)。可用范围覆盖全球多租户、GCC、GCC High 与 DoD。

    本月新增的连接器覆盖多个行业:法律(iManage Work、Boardwise、Harvey、Descrybe、Relativity、Everlaw)、金融(Mercury、Xero、FactSet、PitchBook、Morningstar)、专业服务(Asana、Notion、Canva、Linear、Dropbox)、能源(S&P Global Energy)。此外自助同步连接器进入公测:个人用户可以用自己的凭据连接 Jira Cloud 和 Confluence Cloud,无需走 IT 工单,内容在 Microsoft Graph 中按用户而非按组织探索。GA 目标为 2026 年 10 月。

    6.3 Copilot Cowork GA 与"自然语言建应用"

    Copilot Cowork 正式 GA(经 Frontier 计划提供),定位是 Microsoft 365 里的长时运行、多步骤工作:描述你想要的成果,Cowork 制定计划、跨你的工具与文件推理、带着可见进度推进并在过程中留出让你干预的机会。它内置了来自 Claude 和微软的技能(如日历管理、每日简报),能处理一次性任务也能处理像月度预算审查这样的可重复工作流。技术平台来自驱动 Claude Cowork 的那套。Capital Group 作为早期接入方,其企业技术高级副总裁 Barton Warner 的评价指向了价值点:“这不是生成内容或答案,而是采取真实行动——连接步骤、协调任务、在日常工作流中贯彻到底。”

    同期,Researcher 新增 Critique 与 Council,用 Anthropic 与 OpenAI 等前沿实验室的模型组合把生成与评估分离,提升深度研究的质量与模型对比能力。

    自然语言建应用是这一季 Copilot Studio 最有结构性的更新:Copilot Studio 的公有预览与 Copilot Cowork 里的 /app 技能,让创建者用自然语言描述业务目标——用户、数据和所需动作——Copilot 生成一个可用的初稿,用户可以细化、预览、测试并发布。应用会使用连接器和 Work IQ,遵循 Entra 身份与连接器策略,发布的应用会出现在 M365 管理中心的清单里。计费走 Copilot Credits 用量模型,建应用和执行都消耗。在 Copilot Cowork 里构建的应用可以在 Copilot Studio 中打开和编辑——这是有意设计的互操作性。

    Copilot Studio 侧的其它变化:GitHub Copilot harness GA,现在有三种 harness 并有白皮书说明如何选择;新 harness 上的 Agent 无论 Copilot 许可如何都会为其全部工作计费;信用额度在创建者构建时就消耗,而不只是 Agent 运行时;新增 isCLIAgent 属性用来判断哪些 Agent 在新 harness 上;每个环境四条强制执行规则;可以对单个 Agent 设置限额;有了租户级的信用额度流向视图;新增 Agent 与工作流设计器;用于发布前检查的 Agent Review Tool;GitHub Copilot harness Agent 的 SharePoint 元数据过滤。

    Work IQ API 达到 GA,连接器爬取更快,ServiceNow 连接器尊重基于角色的权限,Power BI grounding 推向全球,Viva Engage 私有社区可以 grounding Copilot。

    6.4 M365 应用层的 September 更新(节选)

    应用值得记的变化
    PowerPoint 可生成交互式幻灯片;可锁定到组织批准模板;幻灯片备注可以逐页引导 Copilot;可编写自己的 PowerPoint 技能;翻译功能移入 Copilot 并自动重排文字;可在画布上编辑 SmartArt;可从邮件构建演示文稿;PowerPoint Live 期间可让 Copilot 解释当前页面;可使用 Adobe Experience Manager 的品牌资产
    Word 自动添加超链接;能读取参考文档里的图片;高亮 Copilot 改动的确切文字;朗读时可与 Word 对话;模型菜单里出现 Claude Sonnet 5
    Excel Copilot 编辑时可用 Python;能解释发生了什么变化以及是谁改的;保留 Copilot 聊天历史
    Outlook 自定义引擎 Agent 可直接在 Outlook 工作;邮件与日历支持纯英文指令;撰写时提供写作辅导;会议准备进入经典版 Outlook for Windows
    Teams / Planner 会议纪要在生成后可事后翻译;Planner Agent 撰写状态报告;可从 Copilot 创建与查询 Planner 任务
    通用 内存与个性化;回答卡片(结构化、可扫读的块而非段落堆);会话与回复可链接分享;Notebooks 重建为两个互联体验,Android 支持多模态捕获,OneNote 支持建议的工件创建

    Power Platform 2026 年 9 月功能更新(9/17–9/18 发布):

    • Canvas Authoring Agent Plugin 转 GA:创造者与 AI Agent 在共享创作会话里协作——Agent 可以创建和修改屏幕、连接数据源、更新 Power Fx 公式、配置控件,并在实时编辑会话中验证改动。委托范围由创造者控制:把复杂或重复的任务交给 Agent,需要精确时随时恢复直接编辑。
    • Model App-Builder Skill:按官方博客说法已 GA,可用 GitHub Copilot CLI、Claude Code 等 AI 编码工具从自然语言需求创建或编辑整个 model-driven app(生成 Dataverse 表、表单、视图、图表、站点地图、JavaScript 验证规则、安全角色、业务流程流和生成式页面)。
      这里有一处必须提醒的事实冲突:Microsoft Learn 上同一能力的专门文档仍标注为 preview,明确说该能力处于活跃开发中、app-spec schema 与 CLI 选项可能在版本间变化、且尚未支持所有 model-driven app 的构件与概念;官方 9 月综述里链接的学习模块标题也仍带 “(preview)”。合理结论不是"功能没发布",而是配套记录没跟上——客户对支持预期、变更稳定性和生产级工作流的边界缺少一致答案。
      建议把它归类为受控试点:只指向开发或沙箱环境,强制人工审阅生成的规格与 dry-run 计划,通过既有的解决方案管道部署而非在共享生产环境中直接编辑。计划审批步骤有价值,但它不能替代对安全角色、表关系、JavaScript Web 资源与业务规则的审查。Learn 还提到一条具体限制:生成后的人工修改会影响后续 AI 辅助编辑——所以在让 Agent 修改既有应用之前,源代码管理、解决方案导出和成文基线是必需品。这里最危险的失败不是生成了一个明显坏掉的应用,而是后续 Agent 主导的更新悄悄覆盖了创造者在生成之后做的定制,因为那次改动没有被反映进下一份 app specification。
    • Power Apps MCP 服务器进入公有预览:让外部 Agent 通过从未结构化来源(共享邮箱、SharePoint 文件夹)抽取字段并创建记录来自动化画布应用的数据录入。配套的增强 Agent 反馈给创造者提供待处理 agentic 动作的并排对比视图,可直接跳转到记录审阅或拒绝改动再提交——这条人工审批设计正是此前让企业客户观望的治理顾虑所在。预览先在美国早期发布周期环境铺开,随后按微软标准周部署节奏扩展区域。当前范围仅覆盖数据录入,微软表示会逐步增加更多 CRUD 操作。
    • Power Automate 与 Copilot Studio 编排打通:自动化流程可以在过程中调用 AI Agent,并在需要判断的边界情况上接收决策后继续。对已经在跑 Copilot Studio Agent(内部门户、政策查询)的组织来说,这些 Agent 从此可以直接参与自动化流程,而不只是待在一个独立的聊天体验里。
    • 生成式页面接入 Dataverse 之外的数据源:可通过 Power Platform 连接器(包括 SharePoint 与 SQL Server)绑定,不必再把数据复制进 Dataverse。这是预览,不建议用于生产;每条基于连接器的页面都需要一个既有的 Power Platform 连接,且必须用最终用户实际会使用的身份和权限来测试——对创造者可用的页面,在普通用户打开时仍可能失败、暴露意外宽泛的信息或返回不完整结果。测试前应检查连接引用、数据丢失防护策略处理、共享配置、连接器专属权限。
    • Power Apps:新增六个开箱即用的 Fluent 2 屏幕模板,以及批量更新当前屏幕上合格控件的选项;批量转换是可启用所需现代控件设置的代码变更,不是外观刷新——公式、验证和 OnChange 行为都可能改变,只有在真实数据与用户路径下测试过转换后的屏幕才谈得上省时间。
    • 路线图机制变更:没有 2026 release wave 2;Release Planner 于 2026 年 11 月 15 日退役;内容迁移至 AI at Work 路线图。

    6.5 Microsoft 365 Copilot for Government 的下一步

    微软宣布 Microsoft 365 G7 for GCC,把生产力、AI、Agent、安全、身份、合规与治理整合为一个面向政府的方案。接下来的几个月是政府云史上规模较大的一波 Copilot 能力:GPT-5.6 扩展起草、摘要、研究与多步推理;Copilot 的记忆与个性化;Word/Excel/PowerPoint 里的就地 Copilot 编辑;Outlook 中扩展的 Copilot Chat 体验(无需附加许可即可利用邮件、日历与会议信息);Copilot 应用里重建的 Notebooks;Copilot in Forms;GCC High 的 Teams 聊天/频道/通话/会议统一 Copilot 体验;DoD 的智能会议纪要。


    七、安全

    7.1 CVE-2026-85889:CVSS 10.0 的 Azure AI Foundry 认证缺失漏洞

    本周安全侧的最高优先项。微软在 9 月 18 日(周四)披露并修复了 Azure AI Foundry(亦名 Microsoft Foundry)的一个满分严重漏洞:

    项目内容
    CVE CVE-2026-85889
    CVSS 10.0(最高严重级)
    类型 关键功能缺少身份验证(Missing authentication for critical function)
    影响 未认证攻击者可通过网络提升权限
    发现者 安全研究员 Rémy Marot(@R_Marot)
    在野利用 无证据表明已被利用
    用户动作 无需任何操作

    Azure AI Foundry 是用于构建、部署和管理生成式 AI 应用与 Agent 的企业平台。该环境里的权限提升具有触及 AI 工作负载、API 密钥和平台内存储数据的潜在影响面。由于是云托管服务,微软完全在自己的基础设施上完成了缓解——MSRC 公告除漏洞分类外未提供技术细节,这是服务端修复的标准做法(补丁在披露前已上线)。

    同一轮修补的其它关键云漏洞:

    CVECVSS服务类型
    CVE-2026-85885 9.9 Microsoft 365 Copilot 命令注入,已授权攻击者可通过网络提升权限
    CVE-2026-85878 9.9 Azure Database for PostgreSQL 授权不当
    CVE-2026-87701 9.6 Azure Cosmos DB 中和不当
    CVE-2026-69843 10.0 Microsoft Fabric 身份验证绕过

    以上全部在服务端完全缓解,客户无需采取任何动作。

    7.2 18 个云与 AI 服务漏洞的集中披露

    微软在同一天发布了 18 个漏洞的补丁,覆盖 Azure 云组合与 Copilot 品牌的 AI 产品。权限提升类占了大头,影响 Azure ARC、Azure AI Foundry、Azure Logic Apps、Azure Billing、Azure HorizonDB、Azure Cosmos DB、Azure Container Registry、Microsoft Fabric、Microsoft Dataverse 和 Microsoft 365 Copilot;另有若干信息泄露漏洞被修复于 Copilot、Microsoft 365 Copilot、Microsoft 365 Copilot Business Chat 和 Azure Machine Learning;Azure Portal 有一个身份伪造漏洞。

    值得注意的是口径问题:微软把所有 18 个都评为 critical,但其 CVSS 分数显示其中一些实际上属于高或中危。部分漏洞由微软内部发现,许多由外部研究员报告。没有任何一个被标记为已被利用,所有修复均在服务端实施。

    7.3 带外更新:两个本地提权漏洞

    有两个漏洞需要用户实际更新 Windows:

    CVECVSS组件后果
    CVE-2026-62721 7.8 Windows 用户模式电源服务(UMPS) 访问控制粒度不足,已授权攻击者本地提升至 SYSTEM
    CVE-2026-85921 8.2 Windows 安全内核模式 双重释放(double free),已授权攻击者本地提升至 VTL1(Virtual Trust Level 1)

    两个漏洞都通过带外累积更新修复:

    • Windows 11 26H1:KB5129194(Build 28000.2956,arm64 与 x64 均已发布)
    • Windows 11 25H2 / 24H2:KB5129195(Build 26200.9457 / 26100.9457)
    • Windows 10 22H2 / 21H2:KB5129236(Build 19045.7727 / 19044.7727)

    其中 CVE-2026-62721 上月首次披露,CVE-2026-85921 当时已被标记为可利用性"较低"。

    7.4 补丁星期二余波:CISA 截止日与 BlueMoon 漏洞利用套件

    上一周的 9 月补丁星期二创下纪录(约 974 个漏洞,另有 964 / 966 / 970 / 999 等公开口径,差异来自统计方法论;请注意各来源数字不可直接比较),其中438 个属于权限提升类。两个已被在野实际利用的零日:

    • CVE-2026-81963 — Windows Update Stack 的链接解析不当
    • CVE-2026-85880 — Windows Advanced Local Procedure Call(ALPC)特权提升

    两者都允许已授权的本地攻击者在低复杂度、无需用户交互的条件下提升至完整 SYSTEM 权限。CISA 已将两者加入 Known Exploited Vulnerabilities 目录,联邦修复截止日为 2026 年 9 月 22 日——也就是本期周报发布后的次日。

    更需要警惕的是利用链:据 Proofpoint 与 Volexity 报告,ALPC 漏洞被与两个 Google Chrome 漏洞串联,形成了名为 BlueMoon 的漏洞利用套件,已被多个与间谍活动相关的威胁行为者武器化,用于投递恶意载荷。这意味着 Windows 侧的提权原语正在被放进浏览器攻击链里组合使用——安全团队除了验证补丁覆盖,也应复核与提权技术相关的横向移动检测与日志覆盖是否存在盲区。

    7.5 9 月更新的回归问题与紧急修复

    9 月安全更新后陆续暴露出若干兼容性问题,多数已通过带外更新解决:

    问题状态
    启用远程桌面(RDS)的设备出现服务不稳定 已解决(KB5129195,9/14 10:57 PT)
    Hyper-V 中 Linux 虚拟机的 Plan9 主机文件夹共享不出现 已解决(KB5129195,9/14 13:30 PT)
    部分 USB Audio Class 1.0 设备显示 Code 10 或多声道模式失败 已缓解(9/14 10:57 PT)
    域加入设备丢失与域的安全信任关系:受 Credential Guard 保护的机器账户无法用有效域凭据交互登录 已缓解(9/17 09:41 PT)

    最后一条值得单独说明:该问题主要影响开启了 Credential Guard 与 Machine Identity Isolation(MII)的企业环境,根因在 MII 功能的强制执行逻辑——其前提是域功能级别必须达到 Windows Server 2025 或更高。遇到登录故障的企业应先核对这两项配置。

    另外,自 2026 年 10 月起,Windows 11 用户将分批获得增强版内存完整性防护:依托处理器硬件虚拟化能力构建基于虚拟化的安全环境,即使攻击者突破内核,隔离层仍可维持防线,并支持在业务运行状态下完成底层漏洞的热修复。

    顺带一提:9 月补丁星期二还修复了 Copilot Studio 的一个严重漏洞——对同时使用 Copilot Studio 构建 Agent 的团队,这个补丁优先级不应低于系统补丁。


    八、Windows 简报(5 条要点)

  • 任务栏终于可以动了:9 月 8 日 KB5124008(Build 26200.9445 / 26100.9445,25H2 与 24H2)带来可移动、可缩放的任务栏,以及开始菜单的尺寸选项、分区显示控制,并支持隐藏姓名与头像。
  • 搜索与资源管理器:Windows 搜索界面与逻辑优化,可以从主页禁用 Bing 和 Microsoft Store 结果;资源管理器的启动速度与响应性提升。
  • Administrator Protection 开始铺开,同时本次更新起系统不再包含 WMIC(Windows Management Instrumentation 命令行工具)。
  • 紧急带外更新:KB5129194(26H1,28000.2956)与 KB5129195(25H2/24H2)修复 RDS 不稳定、Hyper-V Linux 共享文件夹、USB 多声道音频,并加入 CVE-2026-62721 与 CVE-2026-85921 两个本地提权的防护。
  • 需要留意的两件事:Credential Guard + MII 环境的域信任丢失问题已缓解(9/17),但域加入设备应复核登录路径;Windows 11 24H2 与 25H2 的 Home / Pro 版本将于 2026 年 10 月 13 日结束更新。

  • 九、其他简报

    • Azure:ARO 托管控制平面预览 — Azure Red Hat OpenShift 的 hosted control planes 进入公测(UK South、Canada Central、Australia East、Switzerland North、Brazil South、Central India、East US 2、West Europe)。用托管标识与工作负载标识替代存储凭据(短生命周期、自动轮换的令牌),默认启用 etcd 加密并支持自带密钥,满足数据驻留、主权与合规要求。原有标准架构继续完全支持与开发。
    • Azure:PostgreSQL 技能与 MCP 插件 — 把受支持的 AI 编码助手(GitHub Copilot CLI、Claude Code、Codex CLI)变成懂 PostgreSQL 的上下文感知专家:结合你的 schema、PostgreSQL 版本、扩展和 Azure 环境给出建议,并配备能检视实时数据库上下文的 MCP 服务器。覆盖查询与索引调优、向量搜索与 RAG、JSONB、分区、安全、Azure 预置与扩缩容、高可用与故障转移、时间点还原、AI 函数、以及基于 Apache AGE 的知识图谱,并在通用 PostgreSQL 与 Azure 专属建议之间自动路由。
    • Azure:Application Gateway 支持 HTTP/3 over QUIC(公测) — 前端客户端连接可走 QUIC,改善连接建立时间、降低延迟并提升弹性,面向对延迟敏感的 Web 应用、消息平台、移动体验、交易与 API。另外两项运维提醒:Windows App 将从 10 月初使用三个新的客户端侧通配 FQDN(*.windows.cloud.microsoft、*.service.windows.cloud.microsoft、*.windows.static.microsoft,均 443/TCP),对终端设备施加防火墙/代理/VPN/DNS 过滤的企业需提前放行;Microsoft Sentinel 体验正从 Azure 门户迁移到 Defender 门户,Azure Monitor 的旧版身份验证与 Azure Maps Render V1 API 于本月退役。
    • .NET Foundation 全体会员迁移到 Outseta — 超过 900 条会员记录从多个系统(网站申请表、早期电子表格轮次、GitHub members team)合并到单一平台,这也是会员第一次能自己查看和更正持有的信息。10 月第一周会从 contact@dotnetfoundation.org 发出激活邮件(链接有效期 30 分钟,过期后可重发),登录页由 Outseta 托管在 dotnetfoundation.outseta.com——这是唯一涉及的另一个域名。若到 10 月中旬仍未收到,很可能是因为通过 GitHub members team 加入且邮箱不公开,可带姓名与 GitHub 用户名写信处理。**不愿被列出的会员可直接要求删除记录。**这不涉及营销订阅,newsletter 保持独立且 opt-in。
    • Agent Governance Toolkit(AGT)开源 — 微软 .NET 官方博客发布,为 .NET 生态中的 MCP 工具调用提供统一安全治理,MIT 许可、适配 .NET 8.0+、依赖轻量、无需额外服务,dotnet add package Microsoft.AgentGovernance 即可引入。四个核心组件分工:McpGateway 作为前置治理管道完成权限校验、限流、熔断、入参合法性校验;McpSecurityScanner 对工具元数据与定义做安全扫描(识别投毒、注入、仿冒并评分,可按阈值直接拦截高风险工具注册);McpResponseSanitizer 对返回结果脱敏清洗(移除注入特征、明文凭证、外部恶意跳转 URL);GovernanceKernel 作为编排中枢,支持 YAML 外部策略配置、规则冲突处理与审计事件上报,原生对接 OpenTelemetry,调用延迟控制在亚毫秒级。它解决的是"MCP 协议虽有安全规范但原生 SDK 没有强制约束"这一实际缺口(工具投毒、提示注入、越权调用、敏感数据泄露),宣称完整覆盖 OWASP Agentic Top 10,并提供给 IMcpServerBuilder 的 WithGovernance(…) 扩展与面向 Microsoft Agent Framework 的中间件。多语言 SDK(Python、TypeScript、.NET、Rust、Go)共用同一套策略语言,另有 Rego / YAML / OPA / Cedar 策略模板可复用。
    • Microsoft.Extensions.AI 10.10 — 移除了已经下线停用的 OpenAI Assistants 桥接,加固图像转换环节,并让不可用的评估分数按"失败即关闭"(fail closed)处理——评估结果拿不到时不再被当成通过。这是一条容易被忽略但安全相关的语义变更。
    • MCP C# SDK v2.0 — 默认无状态协议,目标是让用 ASP.NET Core 构建和扩展 AI 工具更直接。它与 SDK 捆绑的 dotnet new mcpserver 模板是同一条产品线。
    • 大会日程 — .NET Conf 2026:11 月 10–12 日,免费在线,将正式发布 .NET 11;社区议题征集即将开放。Microsoft Ignite 2026:11 月 17–20 日,旧金山 Moscone Center + 线上,重点包括 AI 与 Copilot 创新(Agent Factory、Agent 365 控制平面)、云与基础设施、安全与合规、开发者动手实验。
    • Surface for Business 新品 — 新一代 Surface Pro for Business(13 英寸)与 Surface Laptop for Business(13.8 / 15 英寸)面向企业市场推出,搭载骁龙 X2 系列处理器并可选 Intel Core Ultra Series 3,通过专用 NPU 加速端上 AI 工作负载。均作为 Secured-core PC 出货,可通过 Intune、Windows Autopilot 和 Surface Management Portal 管理;部分 Surface Laptop 配置内置防窥屏;指定外壳部件使用 100% 再生铝合金,Energy Star 认证效率超出项目要求至少 45%。
    • Copilot 路线图的两处反转 — 网页 grounding 的域排除功能在 8 月被撤下后重新回归;两个路线图项被直接取消(Proactive push notifications、Interactive Agents for Teams Meetings and Calls)。微软很少在同一周期内反复改口,这两条值得作为"路线图不等于承诺"的近期注脚。

    本周报基于公开报道整理,仅供参考。

    赞(0)
    未经允许不得转载:171主机测评 » 微软技术周报 2026-09-14~09-21:.NET 11 Runtime Async 重构、VS 2026 正式 GA、CVSS 10.0 Foundry 漏洞
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址