RDN Express Blog

Blog archive

.NET 4.5 and .NET 4 Won't Coexist

Developers may have to get back to .NET app migrations. The upcoming Microsoft .NET Framework is designed as an in-place update meant to replace .NET 4, instead of the side-by-side installation model that the company used with the current release.

Microsoft released a preview of the .NET Framework 4.5 in mid September as part of the Visual Studio 11 Developer Preview. The.NET Framework 4.5 has the same version number as .NET 4 and Microsoft is working to make it backwards compatible so that it supports existing applications. (.NET 4.5 and .NET 3.5 can still be installed side by side.)

Microsoft officially introduced side-by-side installations of .NET with .NET 4. Scott Guthrie explained the changes in his blog back in August of 2009:

.NET 4.0 has a new version number for both the framework libraries and CLR engine – which means it runs completely independently from .NET 2.0, 3.0 and 3.5. What this means is that you can install .NET 4.0 on a machine that has .NET 2.0/3.0/3.5 installed, and configure some applications to run using .NET 4.0 and others to run using the older .NET versions (the IIS admin tool allows you to configure this for ASP.NET applications). This allows you to use .NET 4.0 for new applications - without having to necessarily test and upgrade all your existing ones.

Microsoft is requesting feedback from early testers on application compatibility issues with .NET 4.5. Some developers are requesting that the company at least change the version number of .NET 4.5 to prevent software deployment and debugging issues. Others want Microsoft to allow .NET 4.5 to run side by side with .NET 4 to help avoid the compatibility testing and related headaches.

Microsoft's Brandon Bray indicated that compatibility isn't the only issue in response to developers' comments on a blog written by Manish Agnihotri, a Microsoft program manager, who is responsible for "driving compatibility across the .NET Framework":

I'll work on getting a discussion going about side-by-side vs. in-place releases. There's more to consider than just compatibility. And I can assure you, the comments left here are being read and discussed amongst the teams contributing to .NET.

You can still use Visual Studio 11 to build projects that multitarget .NET 4.5, .NET 4 and .NET 3.5, according to Microsoft. Limited multitargeting support was first introduced in Visual Studio 2008 and advanced in Visual Studio 2010.

Express your thoughts on side-by-side versus in-place updates to the .NET Framework. Are you prepared to test your existing applications and upgrade them if necessary to run on the next version of the .NET Framework? Drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 11/01/2011 at 12:54 PM

comments powered by Disqus

Reader Comments:

Thu, May 16, 2013 John Hayward

.NET 4.5 not compatible with Interaction Intelligence CIC 4.0 software.

Mon, May 13, 2013 mabra DE-Brühl

Hi ! Thanks well written. I am over all completely disappointed, which dependency level we currently reached. As a small dev, I fell unable to track that all. It not only side-by-side etc, it also, that there is no longer a sloid base - at least, I feel this. Helpers, Extensions, Features, Futures, AddOns, AddIns ?? You'll never have that piece you need and you'll not find the right version! Ancient DLL hell in new clothes - but you'll get them fast, today !!!! Is'nt that great ??? ,-) :-( best regards, ++mabra

Mon, Feb 25, 2013 Losing the will to live

Thanks MicroShite for making me contemplate a career change... I just can't face dealing with this kind of unnecessary problem any more. It was fun for the first 20 years, but now all I want to do is implement business solutions and provide value for my clients. And you are hampering my efforts!!!!!!!!!!!!!!!!!!!!

Fri, Feb 15, 2013 Furtado Luxembourg


Fri, Jan 11, 2013 Rayna Cape Town

I've already experienced a problem with an .asmx webservice that works in .NET 4.0, that stops working under .NET 4.5 :( I uninstalled .NET 4.5, reinstalled 4.0 and the problem went away. My colleague is also experiencing issues with a piece of freeware that works in .NET 4.0 and stops working in 4.5... I'm going to try and log my issue with Microsoft and see what help I can get *cross fingers*.

Sat, Dec 1, 2012 Lars Corneliussen Waltrop, Germany

This is plain irresponsible! How can they even approach 100% compatibility? There is no such thing!

Wed, Nov 28, 2012

Thanks a bunch MS! Do you have more than three people involved in making these kinds of decisions? You have really hurt yourselves with respect to 4.5 usage in the DoD.

Sun, Nov 25, 2012 Riaan van Dyk South Africa

4.5 is a disaster if its in-place update. All my older apps break, plus apps I've bought I cannot use until their dev teams update!! Why on earth does MS do this to themselves? They're slowly but surely, through bad decisioning, making the case for developers to move over to more stable and consistent languages! Perhaps an iMac is on the cards yet!!!!!

Wed, Oct 3, 2012 DRobertson

I just recently moved from VS 2012RC up to VS 2012RTM. As I did this the version of .net changed also. Suddenly all through my active projects I am seeing the following error; "System.Security.VerificationException: Operation could destabilize the runtime." I have been working like crazy to put in place some workarounds, but many of the problems seem to be in dependencies of my project and I have no access to their internals for a fix. This situation is #%$@! miserable and I have a tight deadline to deal with. I can't seem to even roll back without a huge amount of effort. Whoever let that bug through should be fired and this migration path you are using is a mess. Don't EVER overwrite a previous version of an assembly like that with breaking changes. What were they thinking?

Sun, Sep 2, 2012

No wonder many company migrate their system from .net to j2ee, since library always change,to name a few, enterprise library, WF 3.4 to 4.0...

Wed, May 30, 2012 Stephen

This is even worse than what you say. If you use VS 11 and "Target" 4.0, you will still have the bug fixes that were done to 4.5. That means you could develop your app that targets 4.0 and it will look great on your machine. But when someone else runs it it (that only has 4.0) it will break with a framework bug. If it had broken on your machine you may have found a way to work around it. But you will never see it if you are developing with VS 11.

Sun, Apr 8, 2012 Eric Brisbane, Australia

If MS uses minor version numbers, they should ensure backward compatibility. If they're going to need to break compatibility, give it a new major version number and ensure it can be installed side-by-side with the previous version. Why shouldn't it be this simple?

Wed, Feb 29, 2012

As a believer of keeping things simple and as plainly obvious as possible, both in terms of development and production installation / support perspectives, having a "NET 4.5" installation live clearly along side of "NET 4.0" et al means it's far easier to positively confirm the latest .NET framework is installed rather than the ambiguity of checking service packs etc. when run time framework errors occur. Common sense should always prevail :)

Tue, Dec 13, 2011

"Dll hell" is coming back! :)

Tue, Nov 22, 2011

No. Multiple versions of the framework and CLR can be run side-by-side, that's the whole point. Rather than explain, just reference this: http://msdn.microsoft.com/en-us/library/8477k21c.aspx

Mon, Nov 14, 2011 Thogek California, USA

Everyone here does realize that 2.0, 3.0, and 3.5 could not be run side-by-side, because 3.5 was an in-place update of 3.0 which was an in-place update of 2.0. Right? The question seems to be whether the 4.5 (or whatever it ends up being called) release should be a separate parallel runtime (like 1.1, 2.0, and 4.0 were), or an in-place update to an existing run-time (like 3.0, 3.5, and all service-packs were), right? IMO, if it's an in-place update to an existing runtime, it should be back-compatible, and it should be a revision-level update (v4.0.1) or a service-pack. If it's not back-compatible, it should be a parallel runtime with its own minor or major version number (4.1 or 5.0 -- I personally hate this inflative "jump to point-five" stuff). .NET release versioning has been at times confusing enough already, as per http://bit.ly/o3UiI3, so this does deserve some thought and discussion...

Fri, Nov 11, 2011 Mike Gale

This debate is confused by the naming. In my view .NETs 2, 3 and 3.5 are all .NET 2 (with two of them being extension 1 and extension 2).

Thinking with those ideas instead of a linear concept of version numbers changes my thinking about the debate!

I personally have some issues with .NET 4. It has lost some functionality (with WCF web services in ASP.NET) that makes debugging difficult to say the least. (That functionality is in 3.5 and 4.5.) A patch to .NET 4 is under consideration to fix that. If it doesn't get fixed I think (subject to deeper analysis) that a replacement of the .NET 4 binaries(?) would suit me better. If not...

Fri, Nov 4, 2011 Chris Chicago

Wow, never seen so many asinine comments. Clearly none of you actually code .NET other than a hobby.

Fri, Nov 4, 2011 Roman Switzerland

MS should continue to release new frameworks as in the past. The "inplace update" is not a good idea. Just confusion!

Wed, Nov 2, 2011 Muralidharan India

When MS will stop upgrading framework? Is MS upgrading to earn more money ? or adding more Business for customers? Atleast if MS release new framework for every 5 years it will be good.

Wed, Nov 2, 2011 Jim Brighton, UK

Doesn't sound good. Couldn't MS rename it to .NET 5 and allow side-by-side 3.5 / 4 / 5? ;--)

Wed, Nov 2, 2011 Hesham Desouky Egypt

This is not good idea, this will enforce usage of .Net 4.5 while there is existing apps using .Net 4.5 which requires extra work to upgrade all current applications to the latest framework.

Tue, Nov 1, 2011 Ian USA

Oh, come on Microsoft.... I thought we were beyond this already. Side-by-side was the big promise of .NET. Do not break my apps!!!

Tue, Nov 1, 2011

Never! I would not vote for in-place update to framework 4.5. It has to be side-by-side for any chance of adoption. I already faced trouble migrating from 3.5 to 4.0 with so many breaking changes to ASP.NET!

Add Your Comment:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Please type the letters/numbers you see above