If you created your app using an earlier version of the .NET Framework, you can generally upgrade it to the .NET Framework 4.5 and its point releases (4.5.1 and 4.5.2), the .NET Framework 4.6 and its point releases (4.6.1 and 4.6.2), or the .NET Framework 4.7 easily. Open your project in Visual Studio. If your project was created in an earlier version, the Project Compatibility dialog box automatically opens. For more information about upgrading a project in Visual Studio, see Port, Migrate, and Upgrade Visual Studio Projects and Visual Studio 2017 Platform Targeting and Compatibility.
However, some changes in the .NET Framework require changes to your code. You may also want to take advantage of functionality that is new in the .NET Framework 4.5 and its point releases, in the .NET Framework 4.6 and its point releases, or in the .NET Framework 4.7. Making these types of changes to your app for a new version of the .NET Framework is typically referred to as migration. If your app doesn't have to be migrated, you can run it in the .NET Framework 4.5 or later versions without recompiling it.
Review the following documents before you migrate your app from earlier versions of the .NET Framework to version 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, or 4.7:
See Versions and Dependencies to understand the CLR version underlying each version of the .NET Framework and to review guidelines for targeting your apps successfully.
Review Application Compatibility to find out about runtime and retargeting changes that might affect your app and how to handle them.
Review What's Obsolete in the Class Library to determine any types or members in your code that have been made obsolete, and the recommended alternatives.
See What's New for descriptions of new features that you may want to add to your app.
Migrating from the .NET Framework 1.1
Versions and Dependencies
How to: Configure an App to Support .NET Framework 4 or 4.5
What's Obsolete in the Class Library
.NET Framework Version and Assembly Information
Microsoft .NET Framework Support Lifecycle Policy .NET Framework 4 migration issues