Información general sobre la compatibilidad con múltiples versiones de Visual StudioVisual Studio multi-targeting overview

En Visual Studio, puede especificar la versión o perfil de .NET Framework que desee como destino del proyecto.In Visual Studio, you can specify the version or profile of the .NET Framework that you want your project to target. Para ejecutar una aplicación en otro equipo, la versión de Framework de destino de la aplicación debe ser compatible con la versión de Framework que está instalada en el equipo.For an application to run on another computer, the Framework version that the application targets must be compatible with the Framework version that is installed on the computer.

También puede crear una solución que contenga proyectos destinados a versiones diferentes de la plataforma.You can also create a solution that contains projects that target different versions of the framework. La elección de la plataforma de destino ayuda a garantizar que la aplicación use solo la funcionalidad que está disponible en la versión especificada de la plataforma.Framework targeting helps guarantee that the application uses only functionality that is available in the specified version of the framework.

Sugerencia

También puede dirigir aplicaciones a distintas plataformas.You can also target applications for different platforms. Para obtener más información, consulte Compatibilidad con múltiples versiones (multi-targeting).For more information, see Multitargeting.

Características de la elección de la plataforma de destinoFramework targeting features

La elección del marco de destino incluye las siguientes características:Framework targeting includes the following features:

  • Si abre un proyecto que tiene como destino una versión anterior de .NET Framework.NET Framework, Visual Studio puede actualizarlo de forma automática o mantener el destino tal cual.When you open a project that targets an earlier version of the .NET Framework.NET Framework, Visual Studio can automatically upgrade it or leave the target as-is.

  • Al crear un proyecto, puede especificar la versión de .NET Framework.NET Framework que quiere usar como destino.When you create a project, you can specify the version of the .NET Framework.NET Framework that you want to target.

  • Puede cambiar la versión de .NET Framework.NET Framework que tiene como destino un proyecto existente.You can change the version of the .NET Framework.NET Framework that an existing project targets.

  • Puede elegir como destino una versión diferente de .NET Framework.NET Framework en varios proyectos en la misma solución.You can target a different version of the .NET Framework.NET Framework in each of several projects in the same solution.

  • Si cambia la versión de .NET Framework.NET Framework de destino de un proyecto, Programa para la mejoraVisual Studio realiza los cambios necesarios en las referencias y archivos de configuración.When you change the version of the .NET Framework.NET Framework that a project targets, Programa para la mejoraVisual Studio makes any required changes to references and configuration files.

Si trabaja en un proyecto que tiene como destino una versión anterior de .NET Framework.NET Framework, Visual Studio cambia de forma dinámica el entorno de desarrollo, de la siguiente forma:When you work on a project that targets an earlier version of the .NET Framework.NET Framework, Visual Studio dynamically changes the development environment, as follows:

  • Filtra los elementos de los cuadros de diálogo Agregar nuevo elemento, Agregar nueva referencia y Agregar referencia de servicio para omitir las opciones que no están disponibles en la versión de destino.It filters items in the Add New Item dialog box, the Add New Reference dialog box, and the Add Service Reference dialog box to omit choices that are not available in the targeted version.

  • Filtra los controles personalizados del Cuadro de herramientas para quitar los que no están disponibles en la versión de destino y para mostrar solo los controles más actualizados cuando hay varios disponibles.It filters custom controls in the Toolbox to remove those that are not available in the targeted version and to show the only the most up-to-date controls when multiple controls are available.

  • Filtra IntelliSense para omitir características de lenguaje que no están disponibles en la versión de destino.It filters IntelliSense to omit language features that are not available in the targeted version.

  • Filtra las propiedades de la ventana Propiedades para omitir las que no están disponibles en la versión de destino.It filters properties in the Properties window to omit those that are not available in the targeted version.

  • Filtra las opciones del menú para omitir aquellas que no están disponibles en la versión de destino.It filters menu options to omit options that are not available in the targeted version.

  • Para las compilaciones, usa la versión y las opciones del compilador que son adecuadas para la versión de destino.For builds, it uses the version of the compiler and the compiler options that are appropriate for the targeted version.

Nota

La elección del marco de destino no garantiza que la aplicación se ejecute correctamente.Framework targeting does not guarantee that your application will run correctly. Debe probar la aplicación para asegurarse de que se ejecuta en la versión de destino.You must test your application to make sure it runs against the targeted version. No puede elegir como destino versiones de .NET Framework anteriores a la versión 2.0.You cannot target framework versions that are earlier than the .NET Framework 2.0.

Seleccionar una versión de la plataforma de destinoSelect a target framework version

Al crear un proyecto, seleccione la versión de destino de .NET Framework en el cuadro de diálogo Nuevo proyecto.When you create a project, select the target .NET Framework version in the New Project dialog box. La lista de las plataformas disponibles incluye las versiones de las plataformas instaladas que son aplicables al tipo de plantilla seleccionada.The list of available frameworks includes the installed framework versions that are applicable to the selected template type. Para los tipos de plantilla que no requieren .NET Framework, como las plantillas de .NET Core, la lista desplegable Plataforma permanece oculta.For template types that don't require .NET Framework, for example .NET Core templates, the Framework drop-down list is hidden.

Desplegable Plataforma en el cuadro de diálogo Nuevo proyecto

En un proyecto existente, puede cambiar la versión de .NET Framework.NET Framework de destino en el cuadro de diálogo de propiedades del proyecto.In an existing project, you can change the target .NET Framework.NET Framework version in the project properties dialog box. Para obtener más información, consulte Cómo: Usar como destino una versión de .NET Framework.For more information, see How to: Target a version of the .NET Framework.

Resolver referencias de ensamblado de usuario y sistemaResolve system and user assembly references

Para elegir como destino una versión de .NET Framework, primero debe instalar las referencias de ensamblado adecuadas.To target a .NET Framework version, you must first install the appropriate assembly references. Puede descargar los paquetes de desarrollador para distintas versiones de .NET Framework en la página Descargas de .NET.You can download developer packs for different versions of the .NET Framework on the .NET downloads page.

El cuadro de diálogo Agregar referencia deshabilita los ensamblados del sistema que no pertenecen a la versión de .NET Framework.NET Framework de destino para evitar que se agreguen a un proyecto de forma involuntaria.The Add Reference dialog box disables system assemblies that do not pertain to the target .NET Framework.NET Framework version so that they cannot be added to a project inadvertently. (Los ensamblados del sistema son archivos .dll que se incluyen en una versión de .NET Framework.NET Framework). No se resolverán las referencias que pertenezcan a una versión del marco posterior a la versión de destino y no se pueden agregar controles que dependan de este tipo de referencia.(System assemblies are .dll files that are included in a .NET Framework.NET Framework version.) References that belong to a framework version that is later than the targeted version will not resolve, and controls that depend on such a reference cannot be added. Si quiere habilitar este tipo de referencia, restablezca el .NET Framework.NET Framework de destino del proyecto a otro que incluya la referencia.If you want to enable such a reference, reset the .NET Framework.NET Framework target of the project to one that includes the reference. Para obtener más información, consulte Cómo: Usar como destino una versión de .NET Framework.For more information, see How to: Target a version of the .NET Framework.

Para obtener más información sobre las referencias de ensamblado, consulte Resolver ensamblados en tiempo de diseño.For more information about assembly references, see Resolve assemblies at design time.

Habilitar LINQEnable LINQ

Si elige como destino .NET Framework 3.5 o una versión posterior, se agregan de forma automática una referencia a System.Core y una importación de nivel de proyecto para System.Linq (solo en Visual Basic).When 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. Si quiere usar características de LINQ, también debe activar Option Infer (solo en Visual Basic).If you want to use LINQ features, you must also turn Option Infer on (in Visual Basic only). La referencia y la importación se quitan de forma automática si cambia el destino a una versión anterior de .NET Framework.The reference and import are removed automatically if you change the target to an earlier .NET Framework version. Para obtener más información, vea Trabajar con LINQ.For more information, see Work with LINQ.

Vea tambiénSee also