尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Windows 11 25H2 离线安装 .NET 3.5 实战:DISM 命令与镜像源配置指南

发布时间:2026/9/26 14:54:02

资讯中心
01
ARTICLE

Windows 11 25H2 离线安装 .NET 3.5 实战:DISM 命令与镜像源配置指南

Windows 11 25H2 离线安装 .NET 3.5 实战:DISM 命令与镜像源配置指南
1. 为什么 25H2 上装 .NET 3.5 依然是个绕不开的坎如果你最近刚给机器换上 Windows 11 25H2或者正在批量部署一批新到货的办公机大概率会遇到同一个场景某个老旧的行业软件、某套财务系统、某个只认NetFx3的安装包双击之后弹出一句冷冰冰的提示要求你先启用 .NET Framework 3.5。你点“下载并安装”进度条转两圈然后给你一个0x80d03805或者干脆卡在“正在下载所需文件”不动了。这不是你的网络问题也不是微软故意刁难。.NET Framework 3.5 这套运行时是 2007 年前后的产物它包含了 2.0 和 3.0 的完整运行时属于典型的“按需功能”Feature on Demand简称 FoD。从 Windows 10 开始微软就把它的安装包从系统镜像里拆了出去默认只保留一个“壳”真正的二进制文件要么从 Windows Update 在线拉要么从本地镜像的sources\sxs目录里取。25H2 延续了这个策略而且因为企业环境里 WSUS 策略、更新源被改、代理拦截等原因在线安装的成功率低得感人。所以这篇东西就是把我自己在 25H2 上反复折腾出来的离线安装路径完整梳理一遍。核心工具就一个DISMDeployment Image Servicing and Management。核心素材也只有一个和你当前系统版本匹配的 Windows 11 镜像里的sources\sxs文件夹。整套流程不需要联网不需要第三方工具命令行几条就能搞定。适合两类人看一是被某个老软件逼着装 3.5 的普通用户二是需要批量处理几十台机器的运维。小白照着敲也能成运维可以把它写成脚本。2. 先把原理捋清楚DISM 到底在干什么2.1 按需功能的“壳”与“肉”很多人误以为系统里完全没有 .NET 3.5其实不是。你在“启用或关闭 Windows 功能”里能看到.NET Framework 3.5 (包括 .NET 2.0 和 3.0)这个勾选项说明它的功能清单manifest是内置的缺的是实际运行所需的程序集文件。这个设计的好处是系统镜像能小几百 MB坏处就是离线环境装起来麻烦。DISM 的作用就是把这个“壳”和本地sxs目录里的“肉”对接起来。它做的事情本质上是读取你指定的源路径校验里面的组件包和当前系统版本是否匹配然后把文件释放到WinSxS组件存储里最后注册到系统功能列表。整个过程和在线从 Windows Update 拉包是等价的只是数据来源换成了本地。注意源路径里的组件包必须和当前系统版本、架构严格对应。拿 23H2 的 sxs 去给 25H2 装大概率报“源文件找不到”或者版本不匹配。这是最常见的翻车点。2.2 为什么在线安装经常失败在线安装走的是 Windows Update 通道请求的是 FoD 的独立包。失败原因我归纳下来主要是三类更新源被策略接管企业机器通过 WSUS 或 Intune 分发更新而 FoD 包默认不在 WSUS 的同步范围内客户端去问 WSUS 要WSUS 说我没有于是超时或报错。网络层拦截某些网络环境对 Windows Update 的 CDN 做了限制下载中断表现就是进度条卡死最后抛0x80d03805下载失败。系统组件存储轻微损坏WinSxS里有残留的损坏项在线安装时校验不过报0x800f0906之类的错误。离线安装恰好绕开了前两类问题第三类则需要先做一次组件存储修复。这也是为什么我一直推荐离线方案——可控、可重复、可脚本化。2.3 25H2 与 26H2 的差异提示热词里出现了windows 11 26h2这里顺带说一句。25H2 和后续的 26H2 在 FoD 机制上没有本质变化sxs目录结构、DISM 命令参数都通用。唯一的区别是组件包的版本号会随累积更新变化。所以本文的方法对 26H2 同样适用只要把镜像换成对应版本即可。如果你手头只有 25H2 的镜像而系统已经打到 26H2建议优先用系统自带的DISM /Online /Cleanup-Image /RestoreHealth配合对应版本的源或者直接用同版本镜像别硬凑。3. 准备工作镜像、版本与工具三件套3.1 获取匹配的系统镜像离线安装的成败八成取决于镜像选得对不对。你需要的是一个和当前系统版本号、SKU、架构都一致的 Windows 11 镜像。查看当前系统版本的方法很简单管理员权限打开 PowerShell敲Get-ComputerInfo | Select-Object OsName, OsVersion, OsBuildNumber, OsArchitecture或者更直接winver弹出的窗口会显示类似“版本 25H2OS 内部版本 26200.xxxx”。记住这个内部版本号的前几位比如 26200。然后去找对应版本的镜像。MSDN 渠道的消费者版Consumer Editions或商业版Business Editions都行关键是版本要对。镜像下载下来是个 ISO双击挂载或者用 7-Zip 解压。我们只需要里面的sources\sxs这一个文件夹但建议整个 ISO 留着后面万一要补别的组件还能用。提示如果你手头只有 Windows 11 Enterprise LTSC 2024 的镜像而系统是普通 25H2两者内部版本不同sxs 不能混用。LTSC 的组件包版本和主线不一致强行指定会报错。这一点在批量运维时特别容易踩。3.2 确认 sxs 目录内容挂载 ISO 后进到sources\sxs你会看到一堆.cab文件命名类似Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~amd64~~.cab Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~amd64~zh-CN~.cab第一个是主包第二个是语言包zh-CN表示简体中文。如果你系统是中文的两个都需要如果是英文系统语言包对应en-US。这些 cab 文件就是 DISM 要吃的“原料”。3.3 权限与命令行环境DISM 操作系统功能必须用管理员权限。我习惯直接用“终端管理员”或者“命令提示符管理员”。PowerShell 也可以但要注意 PowerShell 里调用 dism.exe 时参数传递和 CMD 略有差异新手建议先用 CMD减少变量。另外操作前建议先关掉所有正在运行的安装程序尤其是那些触发 3.5 依赖的软件避免文件占用导致释放失败。4. 核心实操三条命令搞定离线安装4.1 第一步定位源路径假设你把 ISO 挂载到了D:盘那么源路径就是D:\sources\sxs。如果你是把 ISO 解压到了某个文件夹比如E:\Win11_25H2\sources\sxs那就用这个路径。路径里尽量不要有中文和空格虽然 DISM 支持但能避则避。4.2 第二步执行 DISM 安装命令管理员 CMD 里敲dism /online /enable-feature /featurename:NetFx3 /all /source:D:\sources\sxs /limitaccess逐个参数解释一下这样你出问题知道去哪查/online操作当前运行的系统而不是离线镜像。/enable-feature启用功能。/featurename:NetFx3功能名注意是NetFx3不是.NET Framework 3.5也不是NetFramework3。写错了会提示功能名无效。/all启用该功能的所有父功能。NetFx3 依赖 NetFx3Client 等子项加/all一次到位。/source:指定本地源路径。/limitaccess禁止 DISM 去 Windows Update 找包强制只用本地源。这个参数是离线安装的关键不加的话 DISM 可能还是会尝试联网然后失败。执行后你会看到进度条从 0% 到 100%然后提示“操作成功完成”。整个过程通常一两分钟取决于磁盘速度。4.3 第三步验证安装结果装完别急着关窗口验证一下dism /online /get-featureinfo /featurename:NetFx3输出里应该能看到“状态已启用”。或者更直观的方法去“启用或关闭 Windows 功能”里看那个勾是不是打上了。再或者跑一个依赖 3.5 的老程序能正常启动就说明成了。4.4 语言包缺失的处理如果你只指定了主包所在的 sxs 目录但系统是中文的DISM 会自动从同目录找zh-CN的语言包。如果那个语言包 cab 不存在比如你只拷贝了主包安装可能成功但界面相关资源缺失表现为某些老程序的对话框文字变成方块或英文。解决办法就是把完整 sxs 目录都保留别只挑一个 cab。5. 常见报错逐个拆从 0x80d03805 到 0x800f09065.1 错误代码速查表错误代码含义典型原因解决方向0x80d03805下载失败在线安装时网络中断或被拦截改用离线/source方式0x800f0906源文件找不到源路径错误或 cab 缺失检查 sxs 路径和文件完整性0x800f081f源文件版本不匹配镜像版本与系统不符换同版本镜像0x800f0954组策略阻止WSUS 策略禁止 FoD离线安装或临时调整策略0x800f0922组件存储损坏WinSxS 有损坏项先 RestoreHealth 再装740权限不足没用管理员权限用管理员终端重跑5.2 0x800f0906 的排查思路这个错误最常见字面意思是“找不到源文件”。但实际原因往往不是文件真的不在而是路径写错了比如把sources\sxs写成了source\sxs。挂载的 ISO 盘符变了你还在用旧盘符。sxs 目录里的 cab 文件被杀毒软件隔离了少见但发生过。系统版本和镜像版本差了一个累积更新组件包哈希对不上。排查顺序先用dir D:\sources\sxs确认文件在再确认盘符最后核对版本。如果都对了还报就换一个更新的同版本镜像。5.3 0x800f081f 的版本匹配问题这个错误明确指向版本不匹配。我遇到过一种情况系统是 25H2 但已经打到了 26200.5000 之后的累积更新而手头镜像是 26200.1000 的初始版。虽然大版本都是 25H2但组件包版本号不同DISM 校验不过。解决办法有两个一是用和当前系统累积更新级别一致的镜像比如从 VLSC 或 MSDN 下最新版二是先在线把系统更新到和镜像一致再离线装。后者有点绕不如直接找新镜像。5.4 组件存储损坏的前置修复如果报 0x800f0922 或者反复失败先做一次组件存储修复dism /online /cleanup-image /restorehealth这条命令会尝试从 Windows Update 拉取健康的组件替换损坏项。如果机器完全离线可以配合/source指定一个同版本的 install.wim 或 esddism /online /cleanup-image /restorehealth /source:WIM:E:\sources\install.wim:1 /limitaccess修复完再重跑 NetFx3 的安装命令。这一步很多人跳过结果在损坏的存储上反复装反复失败浪费时间。6. 批量部署与脚本化运维视角的优化6.1 把命令封装成批处理如果你要给几十台机器装手动敲不现实。写一个install-netfx3.batecho off set SXS%~dp0sources\sxs dism /online /enable-feature /featurename:NetFx3 /all /source:%SXS% /limitaccess if %errorlevel%0 ( echo NetFx3 installed successfully. ) else ( echo Failed with error %errorlevel%. ) pause把sources\sxs和这个 bat 放同一个目录双击以管理员身份即可。%~dp0会自动取脚本所在路径避免盘符变化的问题。6.2 用 PowerShell 做状态检测批量场景下先检测再安装更稳妥$feature Get-WindowsOptionalFeature -Online -FeatureName NetFx3 if ($feature.State -ne Enabled) { Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source D:\sources\sxs -LimitAccess -NoRestart }Get-WindowsOptionalFeature是 PowerShell 对 DISM 的封装读起来更顺。注意-Source参数在部分版本上要求是 WIM 挂载路径如果直接指 sxs 目录报错就退回用 dism.exe。6.3 镜像内预置的思路更彻底的方案是在部署镜像阶段就把 NetFx3 打进去这样新机器开箱即用。用 DISM 挂载 install.wim然后dism /mount-wim /wimfile:E:\sources\install.wim /index:1 /mountdir:C:\mount dism /image:C:\mount /enable-feature /featurename:NetFx3 /all /source:E:\sources\sxs /limitaccess dism /unmount-wim /mountdir:C:\mount /commit这样出来的镜像装到机器上3.5 已经是启用状态。适合标准化交付的场景。代价是镜像体积会增加几百 MB且每次系统累积更新后可能需要重新制作。7. 几个容易忽略的细节与我的实操心得7.1 别用第三方“一键安装包”网上有很多所谓的 .NET 3.5 离线安装包本质上是把 sxs 里的 cab 重新打包或者干脆是从某个旧系统里提取的。风险在于版本不可控可能夹带旧组件装完系统功能列表里出现奇怪的条目。我试过两次一次成功一次把组件存储搞出警告。后来就只用官方镜像的 sxs干净、可追溯。7.2 安装后重启的必要性DISM 装完 NetFx3 通常不强制重启但某些依赖它的程序在首次运行时会触发一次内部初始化。如果装完立刻跑程序报错先重启一次再试。我遇到过装完不重启老软件的安装程序仍然提示缺 3.5重启后正常。这不是 DISM 的问题是程序自身的检测逻辑缓存了旧状态。7.3 磁盘空间与 WinSxS 膨胀启用 NetFx3 会让WinSxS目录增加大约 200 到 400 MB。这是正常的别去手动清理。有些人用第三方清理工具删 WinSxS 里的“冗余”文件结果把 3.5 的组件删了程序又跑不起来。要清理就用官方的dism /online /cleanup-image /startcomponentcleanup这条命令安全只清理被取代的旧版本组件。7.4 关于 26H2 的前瞻提醒热词里windows 11 26h2出现频率不低。按目前的节奏26H2 的 FoD 机制不会变但组件包命名和版本号会更新。如果你现在用 25H2 的镜像给 26H2 装大概率报版本不匹配。建议等 26H2 正式镜像出来后再操作或者用系统自带的在线修复配合对应源。方法本身是通用的变的只是镜像版本。7.5 一个冷门但有用的检查点装完后如果程序还是报错检查一下是不是同时需要 .NET 2.0 的某个特定补丁。NetFx3 包含了 2.0 和 3.0但某些极老的软件依赖 2.0 SP2 的特定 hotfix。这种情况离线装 NetFx3 解决不了得单独找对应的更新包。判断方法是看程序报错的具体版本号要求如果它明确写“需要 2.0 SP2 修订版 xxxx”那就是另一回事了。8. 收尾我自己的操作习惯我现在给任何一台 25H2 机器装 3.5流程固定成三步先winver确认版本再从镜像库拿对应版本的 ISO 挂载最后一条 DISM 命令加/limitaccess跑完。整个过程五分钟以内比在线等 Windows Update 靠谱得多。唯一需要提前准备的就是那个 ISO我习惯在移动硬盘里常备几个主流版本的镜像省得临时找。如果你手头没有对应镜像又急着装可以先试试在线方式配合DISM /Online /Cleanup-Image /RestoreHealth但成功率取决于网络和策略环境。真要稳还是离线。这套方法我从 Windows 10 时代用到现在25H2 上验证过多次没出过幺蛾子。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。