Jump to content
The Hotfix Share

.NET Framework 4.6.1


parkd1

Recommended Posts

  • 1 month later...

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

Edited by cgthamm
Link to comment
Share on other sites

  • 2 weeks later...

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?

Edited by cgthamm
Link to comment
Share on other sites

  • 2 weeks later...

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

  • 2 months later...

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.

Edited by cgthamm
Link to comment
Share on other sites

  • 1 year later...
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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...