Retargeting All Projects in a Solution to .NET 4.5.2

The MSDN documentation "Migration Guide to the .NET Framework 4.5" and "How to Configure an App to Support .NET Framework 4 or 4.5" only discusses modifying projects. There's no details on applying changes to the entire solution at once, nor have I seen a function in VS that supports it.

However, there's a (well-rated) extension called Target Framework Migrator available in the Visual Studio gallery, which supports upgrading to 4.5.2 (as well as newer versions**) and looks like it'll do exactly what you want. The source code is available on GitHub, if you're interested.

Note that the lack of such a feature may be intentional (and not just an omission). I'm just guessing, but maybe MS figures only projects that need the new Frameworks will be upgraded. FWIW, if you end up upgrading some projects that are shared with other solutions, those solutions may fail to build until they're upgraded too.

That being said, if you're in a small shop with just one (or a few) solutions and you're looking to upgrade everything in one go, then perhaps the above tool will work for you.


There's been no development on this for years, and apparently the developer has no plans to pass the baton to anyone else.

If you're unable to get it to work with a newer .NET Framework version, check the existing PRs and Issues for fixes, but you may have to apply them yourself. For example, someone posted a fix for .NET Framework v 4.7.1. Hopefully these will get merged, but I wouldn't hold my breath.

If anyone else is seeing the same error as Anas (in the comments), here's a GitHub issue from a couple weeks ago, and another possibly related issue from 2017. Consider thumbs upping them and adding more details if you're having the same problem.


For a .NET Framework solution, a simple "Replace in files" did the trick for me:

eg: From .NET Framework 4.5.2 to .NET Framework 4.7.2

In package.config files, replace all

targetFramework="net452" 

to

targetFramework="net472" 

In *.csproj files, replace all

<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion> 

to

<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>