Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Show Framework targeting overview
In this articleIn Visual Studio, you can specify the version of .NET that you want your project to target. Framework targeting helps guarantee that the application uses only functionality that is available in the specified framework version. For .NET Framework apps to run on another computer, the framework version that the application targets must be compatible with the framework version that's installed on the computer. A Visual Studio solution can contain projects that target different versions of .NET. However, note that you can only build against a single version of .NET either using reference conditionals for a single build or recursively build different binaries for each version. For more information about target frameworks, see Target frameworks. Tip You can also target applications for different platforms. For more information, see Multitargeting. Framework targeting featuresFramework targeting includes the following features:
When you work on a project that targets an earlier framework version, Visual Studio dynamically changes the development environment, as follows:
Note
Change the target frameworkIn an existing Visual Basic, C#, or F# project, you change the target .NET version in the project properties dialog box. For information about how to change the target version for C++ projects, see How to modify the target framework and platform toolset instead.
Note If your code contains references to a different version of the .NET than the one that you targeted, error messages may appear when you compile or run the code. To resolve these errors, modify the references. See Troubleshoot .NET targeting errors. Tip Depending on the target framework, it can be represented in the following ways in the project file:
Select a target framework versionWhen you create a .NET Framework project, you can select the target .NET Framework version after you select a project template. The list of available frameworks includes the installed framework versions that are applicable to the selected template type. For non-.NET Framework project templates, for example .NET Core templates, the Framework drop-down list doesn't appear. If you choose to create a .NET Framework project, you'll see an interface that's similar to the following screenshot: If you choose to create a .NET project, you'll see user interface (UI) that's similar to the following two screenshots. The first screen you'll see is the Configure your new project dialog. The second screen you'll see is the Additional options dialog. Resolve system and user assembly referencesTo target a .NET version, you must first install the appropriate assembly references. You can download developer packs for different versions of .NET on the .NET downloads page. For .NET Framework projects, the Add Reference dialog box disables system assemblies that don't pertain to the target .NET Framework version so that they can't be inadvertently added to a project. (System assemblies are .dll files that are included in a .NET Framework version.) References that belong to a framework version that's higher than the targeted version won't resolve, and controls that depend on such a reference can't be added. If you want to enable such a reference, reset the .NET Framework target of the project to one that includes the reference. For more information about assembly references, see Resolve assemblies at design time. Enable LINQWhen you target the .NET Framework 3.5 or later, a reference to System.Core and a project-level import for System.Linq (in Visual Basic only) are added automatically. If you want to use LINQ features, you must also turn |