Solucionar problemas de versión de .NET Framework de destinoTroubleshooting .NET Framework Targeting Errors

En este tema se describen los errores de MSBuild que pueden producirse debido a problemas de referencia y cómo pueden resolverse esos errores.This topic describes MSBuild errors that might occur because of reference issues and how you can resolve those errors.

Ha hecho referencia a un proyecto o ensamblado que tiene como destino una versión diferente de .NET FrameworkYou Have Referenced a Project or Assembly That Targets a Different Version of the .NET Framework

Puede crear aplicaciones que hagan referencia a proyectos o ensamblados destinados a otra versión de .NET Framework.NET Framework.You can create applications that reference projects or assemblies that target different versions of the .NET Framework.NET Framework. Por ejemplo, puede crear una aplicación destinada al perfil de cliente para .NET Framework 4.NET Framework 4 pero que hace referencia a un ensamblado destinado a .NET Framework 2.0.For example, you can create an application that targets the client profile for the .NET Framework 4.NET Framework 4 but references an assembly that targets the .NET Framework 2.0. Pero si crea un proyecto destinado a una versión anterior de .NET Framework.NET Framework, no puede establecer una referencia en ese proyecto a un proyecto o ensamblado destinado al propio perfil de cliente de .NET Framework 4.NET Framework 4 o .NET Framework 4.NET Framework 4.However, if you create a project that targets an earlier version of the .NET Framework.NET Framework, you can't set a reference in that project to a project or assembly that targets the client profile for the .NET Framework 4.NET Framework 4 or the .NET Framework 4.NET Framework 4 itself. Para resolver el error, asegúrese de que la aplicación tiene como destino un perfil o perfiles que sean compatibles con el perfil al que se destinan los proyectos o ensamblados a los que la aplicación hace referencia.To resolve the error, make sure that your application targets a profile or profiles that are compatible with the profile that's targeted by the projects or assemblies that your application references.

Ha cambiado el destino de un proyecto a una versión diferente de .NET FrameworkYou Have Re-Targeted a Project to a Different Version of the .NET Framework

Si cambia la versión de destino de .NET Framework.NET Framework para la aplicación, Visual Studio cambiará algunas de las referencias, pero es posible que deba actualizar algunas referencias manualmente.If you change the target version of the .NET Framework.NET Framework for your application, Visual Studio changes some of the references, but you may have to update some references manually. Por ejemplo, podría ocurrir uno de los errores anteriormente mencionados si cambia una aplicación para que se destine a .NET Framework 3.5 Service Pack 1.NET Framework 3.5 Service Pack 1 y la aplicación tiene recursos o valores que se basan en el perfil de cliente para .NET Framework 4.NET Framework 4.For example, one of the previously mentioned errors might occur if you change an application to target the .NET Framework 3.5 Service Pack 1.NET Framework 3.5 Service Pack 1 and that application has resources or settings that rely on the client profile for the .NET Framework 4.NET Framework 4.

Para corregir la configuración de la aplicación, abra el Explorador de soluciones, elija Mostrar todos los archivos y, a continuación, edite el archivo app.config en el editor XML de Visual Studio.To work around application settings, open Solution Explorer, choose Show All Files, and then edit the app.config file in the XML editor of Visual Studio. Cambie la versión en la configuración para que coincida con la versión adecuada de .NET Framework.Change the version in the settings to match the appropriate version of the .NET Framework. Por ejemplo, puede cambiar la configuración de la versión de 4.0.0.0 a 2.0.0.0.For example, you can change the version setting from 4.0.0.0 to 2.0.0.0. De igual manera, para una aplicación con recursos agregados, abra el Explorador de soluciones, elija el botón Mostrar todos los archivos, expanda Mi proyecto (Visual Basic) o Propiedades (C#) y, a continuación modifique el archivo Resources.resx en el Editor XML de Visual Studio.Similarly, for an application that has added resources, open Solution Explorer, choose the Show All Files button, expand My Project (Visual Basic) or Properties (C#), and then edit the Resources.resx file in the XML editor of Visual Studio. Cambie la versión de 4.0.0.0 a 2.0.0.0.Change the version setting from 4.0.0.0 to 2.0.0.0.

Si la aplicación tiene recursos como iconos o mapas de bits o valores como cadenas de conexión de datos, también puede resolver el error quitando todos los elementos en la página Configuración del Diseñador de proyectos y, a continuación, volver a agregar los parámetros necesarios.If your application has resources such as icons or bitmaps or settings such as data connection strings, you can also resolve the error by removing all the items on the Settings page of the Project Designer and then re-adding the required settings.

Ha cambiado el destino de un proyecto a una versión diferente de .NET Framework y las referencias no se resuelvenYou Have Re-Targeted a Project to a Different Version of the .NET Framework and References Do Not Resolve

Si cambia el destino de un proyecto a una versión diferente de .NET Framework.NET Framework, las referencias pueden no resolverse correctamente en algunos casos.If you retarget a project to a different version of the .NET Framework.NET Framework, your references may not resolve properly in some cases. Las referencias completas explícitas a ensamblados a menudo provocan este problema, pero puede resolverlo quitando las referencias que no se resuelvan y agregándolas luego de nuevo al proyecto.Explicit fully qualified references to assemblies often cause this issue, but you can resolve it by removing the references that do not resolve and then adding them back to the project. También puede editar el archivo de proyecto para reemplazar las referencias.As an alternative, you can edit the project file to replace the references. En primer lugar, quite las referencias de la forma siguiente:First, you remove references of the following form:

<Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />  

A continuación, reemplácelas por la forma simple:Then you replace them with the simple form:

<Reference Include="System.ServiceModel" />  

Nota

Después de cerrar y volver a abrir el proyecto, también debe volver a generarlo para garantizar que todas las referencias se resuelven correctamente.After you close and reopen your project, you should also rebuild it to ensure that all references resolve correctly.

Vea tambiénSee Also

Cómo: Usar como destino una versión de .NET Framework How to: Target a Version of the .NET Framework
.NET Framework Client Profile (Perfil de cliente de .NET Framework).NET Framework Client Profile
Elegir una versión específica de .NET Framework Targeting a Specific .NET Framework Version
Compatibilidad con múltiples versiones (multi-targeting)Multitargeting