Help - Search - Members - Calendar
Full Version: .NET Framework 4.6.1
The Hotfix Share > General > General Discussion

parkd1
Could you add Language Neutral .NET Framework 4.6.1 Hotfix Downloads? Thanks

https://support.microsoft.com/en-us/kb/3102436
cgthamm
There is now a hotfix rollup for .NET Framework 4.6.1. It is available from the Microsoft Download Center:

KB3120241 - Hotfix rollup 3120241 for the .NET Framework 4.6 and 4.6.1 on Windows

NOTE: This update rollup also applies to .NET Framework 4.6. It addresses some problems with the JIT compiler which cause instability and unpredictable behaviour. These problems only affect 64-bit OSes. If you still have problems after installing this hotfix rollup, refer to the troubleshooting link in the aforementioned Knowledge Base article. Some of my clients are, in fact, having problems with .NET Framework 4.6/4.6.1, and Method 2 in the troubleshooting article -- a global environment variable -- has proven to be the least-hassle solution for them.

NOTE: This update rollup applies to .NET Framework 4.6/4.6.1 on Windows 7.

For the Windows 8 / Windows Server 2012 version, refer to this Knowledge Base article:

KB3120238 - Hotfix rollup 3120238 for the .NET Framework 4.6 and 4.6.1 on Windows 8 and Windows Server 2012

For the Windows 8.1 / Windows Server 2012 R2 version, refer to this Knowledge Base article:

KB3120239 - Hotfix rollup 3120239 for the .NET Framework 4.6 and 4.6.1 on Windows 8.1 and Windows Server 2012 R2
cgthamm
kb3120239 is proving to be a bit of trouble. It is intended to be a hotfix for .NET Framework 4.6 and 4.6.1 under Windows 8.1. HOWEVER, it successfully installs on Windows 8.1 with .NET Framework 4.5.2 installed, causing a version mismatch between .NET Framework components. Should you install kb3120239 without previously having installed .NET Framework 4.6 or 4.6.1, you will notice a variety of things break, not the least of which is PPTP VPN connections.

The solution I have found to restore sanity is to:
1. Uninstall kb3120239.
2. Create global environment variable COMPLUS_useLegacyJit and set its value to 1.
3. Install .NET Framework 4.6.1 using the offline installer (kb3102436).
4. Install kb3120239.

You would think that simply uninstalling kb3120239 would restore .NET Framework 4.5.2 and everything would work. Unfortunately, this is not the case.

Anyone else having problems with .NET Framework 4.5.x / 4.6.x version mismatches?
cgthamm
After much additional testing, I have found you can get .NET Framework 4.6.1 to work (or, at least work better) by creating the global environment variable COMPLUS_JitMinOpts and setting its value to 1, as documented here.

Doing this has the added advantage of moving in the same direction that Microsoft is heading by using RyuJIT, as opposed to the legacy JIT64 compiler.
parkd1
Can you give step by step on how to add this? Thanks.
cgthamm
Instructions for creating global environment variable COMPLUS_JitMinOpts and setting its value to 1:

Open the System Control Panel (WinKey+Pause)
Click Advanced System Settings (on the left-hand side)
Click Environment Variables...
Under System Variables, click New...
In Variable name enter: COMPLUS_JitMinOpts
In Variable value enter: 1
Click OK.

Then restart your computer.
cgthamm
There is now a second hotfix rollup available for .NET Framework 4.6.1. Here are the relevant Knowledge Base Articles:

For Windows Vista SP2, Windows Server 2008 SP2, Windows 7 SP1, and Windows Server 2008 R2 SP1:

KB3139551 - Hotfix rollup 3139551 for the .NET Framework 4.6.1 and 4.6 on Windows

For Windows 8 and Windows Server 2012:

KB3139549 - Hotfix rollup 3139549 for the .NET Framework 4.6.1 and 4.6 in Windows

For Windows 8.1 and Windows Server 2012 R2:

KB3139550 - Hotfix rollup 3139550 for the .NET Framework 4.6.1 and 4.6 on Windows

These hotfix rollups are available from the Microsoft Download Center.


I have now completed a significant amount of testing. Despite the fact that Microsoft has made some corrections to RyuJIT, it is still not possible to use .NET Framework 4.6.1 without the COMPLUS_JitMinOpts=1 system environment variable. Attempting to do so results in an unstable system. In fact, in one case, it was not possible to get a Windows 7 PC running .NET Framework 4.6.1 with KB3120241 and KB3139551 installed to either log off, restart, or shutdown. It had to be forcibly powered off and then restarted.


Bottom line, this hotfix rollup makes .NET Framework 4.6.1 better, but there remain RyuJIT issues that Microsoft needs to resolve.
parkd1
Hopefully they can fix them before 4.6.2 comes out. You can now download a preview of version 4.6.2.
Hansell
QUOTE (cgthamm @ Jan 27 2016, 09:26 PM) *
Instructions for creating global environment variable COMPLUS_JitMinOpts and setting its value to 1:

Open the System Control Panel (WinKey+Pause)
Click Advanced System Settings (on the left-hand side)
Click Environment Variables...
Under System Variables, click New...
In Variable name enter: COMPLUS_JitMinOpts
In Variable value enter: 1
Click OK.

Then restart your computer.


Thanks for the step-by-step instructions Cgthamm. Helped me a lot.

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2019 Invision Power Services, Inc.