到目前为止,我一直依赖于windows update
安装最新的补丁.net framework 4.8
。
但这在我的装有“windows 10 pro”(以工作组模式运行)的机器上不再发生。
以下是该机器的 Windows 更新历史记录的简化列表:
- 2020-xx-xx windows 10
- 2020-08-14 .net update 2020-08 KB4569745
- 2020-08-14 windows 10 upgrade to 2004
- 2020-10-20 .net update 2020-10 KB4578968
- 2021-01-19 windows 10 upgrade to 20H2
- 2021-02-23 .net update 2021-02 KB4601050 (<------)
- 2021-09-21 windows 10 upgrade to 21H1
- 2021-10-27 windows 10 21H1 cumulative update KB5006670
- 2021-11-03 update for windows 10 21H1 KB5005463
在撰写本文时十一月2021.
上次 .net framework 更新 ( KB4601050
) 安装在二月2021.
例如:机器仍然有“System.Windows.Forms.dll”,文件版本为“4.8.4270.0”。
已经有了较新的 .net 框架更新。例如累积更新KB5005539
(2021 年 10 月)。
但 Windows 更新无法找到并安装这些更新。
这些自动更新不再起作用的原因是什么?
--
评论说明:
我不是谈论 NDP 下面的注册表项(对我来说显示为“4.8.04084”)。
相反,我说的是更新各个 .net 框架程序集的“累积更新”。例如:转到“%windir%\Microsoft.NET\Framework64\v4.0.30319”并检查“System.Windows.Forms.dll”的文件版本属性,
在顶层我只是查看“windows 更新历史记录”。
--
更新:
我发现最接近的匹配是在以下讨论中:https://www.askwoody.com/forums/topic/net-update-confusion/
讨论摘要:
在撰写本文时,KB4601056 / KB4601050(2021 年 2 月)是微软归类为 .netsecurity
更新的最后一个更新。
所有后续累积更新都被归类为 .netquality and reliability improvement
更新。
根据您如何配置“Windows 更新”服务,后一类将不会由 Windows 更新显示/下载。
--
因此挑战可能在于选择正确的配置:
- 我愿意不是想要任何“预览”更新
- 但我确实希望获得质量和可靠性的更新(发布后延迟 7 天)
不幸的是,“gpedit.msc -> Windows Update for Business”中的以下设置仍然无法显示.net 框架更新:
所以也许毕竟它仍然是 .NET Framework 更新的取代链中的一些故障或错误?
答案1
在那次讨论中https://www.askwoody.com/forums/topic/net-update-confusion/ Susan Bradley
说明了一切(粗体强调是我的):
.NET 非常令人困惑它们是如何被 Windows 更新打包和处理的。
如果您离开您的机器并且不设置任何组策略设置,您将获得包含错误修复的更新,但不会获得任何新的安全更新。
如果你设置任何正常延期,你会被视为“商业”补丁程序,并且只有在 .NET 更新发布时才会被提供安全更新。
您所经历的确实是“正常的”。
根据我的理解,那些使一个人被视为“商业”修补者的“延期”情况如下:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"BranchReadinessLevel"=dword:00000010
"DeferFeatureUpdates"=dword:00000001
"DeferFeatureUpdatesPeriodInDays"=dword:0000005a
"DeferQualityUpdates"=dword:00000001
"DeferQualityUpdatesPeriodInDays"=dword:00000007
"ManagePreviewBuilds"=dword:00000001
"ManagePreviewBuildsPolicyValue"=dword:00000000
"PauseFeatureUpdatesStartTime"=""
"PauseQualityUpdatesStartTime"=""
使用上述设置我不是获取 .net 框架的常规错误修复(质量更新)。
因此看起来不是可以实现以下所有目标:
- under no circumstances i want "preview" updates!
- i do want "security" updates (ideally delayed by 7 days)
- i do want "quality" updates (ideally delayed by 30 days)
- i do want "feature" updates (ideally delayed by 3 months)
真丢脸 ...
因此,如果我们对特定的 .net 质量更新感兴趣,我们需要从 Microsoft 更新目录下载 MSU 并手动安装。