A quick blog on the recent release of .NET Framework 4.7.2. In the past I blogged about the tight relationship between Exchange versions and the .NET Framework, and the supported combinations of those two to deploy and run Exchange. Shortly after publishing that article, Microsoft revised its support statement:
“When upgrading Exchange from an unsupported CU to the current CU and no intermediate CUs are available, you should upgrade to the latest version of .NET that’s supported by Exchange first and then immediately upgrade to the current CU. This method doesn’t replace the need to keep your Exchange servers up to date and on the latest, supported, CU. Microsoft makes no claim that an upgrade failure will not occur using this method, which may result in the need to contact Microsoft Support Services”.
Now while 4.7.2 is a minor release, it is not mentioned in the Exchange supportability matrix at this moment. As such, it is not a validated combination, and you will be in uncharted territory with an unsupported configuration. The revised support statement only mentions upgrading Cumulative Update directly to a recent release as many customers were faced with a two-step upgrade process coming from old Cumulative Updates, basically ignore the supportability matrix. However, it does not mention anything about upgrading to the latest .NET Framework version at this moment. So don’t.
To block (accidental) installation of .NET Framework 4.7.2, you can configure the following registry key on your current Exchange servers to block its installation:
HKLM\Software\Microsoft\NET Framework Setup\NDP\WU\BlockNetFramework472= 1 (REG_DWORD)
or using PowerShell code:
$Version='472' $RegKey= 'HKLM:\Software\Microsoft\NET Framework Setup\NDP\WU' $RegName= ('BlockNetFramework{0}' -f $Version) If( -not (Test-Path $RegKey -ErrorAction SilentlyContinue)) { New-Item -Path (Split-Path $RegKey -Parent) -Name (Split-Path $RegKey -Leaf) -ErrorAction SilentlyContinue | out-null } New-ItemProperty -Path $RegKey -Name $RegName -Value 1 -ErrorAction SilentlyContinue| out-null If( ( Get-ItemProperty -Path $RegKey -Name $RegName -ErrorAction SilentlyContinue)) { Write-Output ('Installation blockade for .NET Framework {0} set' -f $Version) } Else { Write-Error ('Unable to set registry entry {0}\{1}' -f $RegKey, $RegName) }
Pingback: .net | IT?
One can also create a very simple .REG file, then double-click to run it.
I keep it in my tools folder, update as necessary.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\WU]
“BlockNetFramework472″=dword:00000001
Lee~
LikeLike
Hallo Michel,
there is a small typo in the powersell code, in row 3 it should be:
$RegName= (‘BlockNetFramework{0}’ -f $Version)
Best regards,
Ofir
LikeLike
Ugh, thanks.
LikeLike
Do you know if Exchange 2016 CU 11 is going to support .NET Framework 4.7.2?
LikeLike
Exchange 2016 CU11 supports .NET Framework 4.7.2; I’ve updated my article on this https://eightwone.com/2017/12/21/upgrade-paths-for-cus-net/
and the official word is in the EHLO announcement https://blogs.technet.microsoft.com/exchange/2018/10/16/released-october-2018-quarterly-exchange-updates/; MS’ supportability matrix needs updating.
LikeLike
Awesome, thanks for the update.
LikeLike
Hi,
Does Exchange server 2013 CU 11 supports .net framework 4.7.1?
LikeLike
No, see https://eightwone.com/2017/12/21/upgrade-paths-for-cus-net/. Be sure to read the statement on upgrading to Current.
LikeLike