Solucionar problemas de versión de .NET Framework de destino
Se aplica a: Visual Studio
En este tema se describen los errores de MSBuild que pueden producirse debido a problemas de referencia y cómo puede resolver esos errores.
Hacer referencia a un proyecto o ensamblado que tiene como destino otra versión de .NET
Puede crear aplicaciones que hagan referencia a proyectos o ensamblados destinados a otra versión de .NET. Por ejemplo, se podría crear una aplicación destinada a .NET 6 que haga referencia a un ensamblado destinado a .NET Core 3.1. Sin embargo, no se puede establecer una referencia en un proyecto que tenga como destino una versión anterior de .NET a un proyecto o ensamblado que tenga como destino .NET 6. Este es un ejemplo del error que puede ver en este caso:
error NU1201: Project ClassLibrary-NET6 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Project ClassLibrary-NET6 supports: net6.0 (.NETCoreApp,Version=v6.0)
2>Done building project "ClassLibrary-NET31.csproj" -- FAILED.
Para resolver el error, asegúrese de que la aplicación tiene como destino una versión de .NET compatible con la versión a la que se destinan los proyectos o ensamblados a los que la aplicación hace referencia.
Volver a dirigir un proyecto a una versión diferente de .NET
Si cambia la versión de destino de .NET para la aplicación, Visual Studio cambiará algunas de las referencias, pero es posible que deba actualizar algunas referencias manualmente. Por ejemplo, podría ocurrir uno de los errores anteriormente mencionados si cambia una aplicación para que se destine a .NET Core 3.1 y la aplicación tiene recursos o valores que se basan en .NET 6.
Actualizar referencias en app.config
Para solucionar la configuración de la aplicación en aplicaciones de .NET Framework, siga estos pasos:
- Abra el Explorador de soluciones.
- Seleccione Mostrar todos los archivos y, a continuación, edite el archivo app.config en el editor XML de Visual Studio.
- Cambie la versión en la configuración para que coincida con la versión adecuada de .NET. Por ejemplo, puede cambiar la configuración de la versión de 4.0.0.0 a 2.0.0.0.
Del mismo modo, para una aplicación que tiene recursos agregados, siga estos pasos:
- Abra el Explorador de soluciones.
- Seleccione Mostrar todos los archivos.
- Expanda Mi proyecto (Visual Basic) o Propiedades (C#) y, a continuación, edite el archivo Resources.resx en el editor XML de Visual Studio.
- Cambie la versión de 4.0.0.0 a 2.0.0.0.
Actualización de recursos
Si la aplicación tiene recursos como iconos o mapas de bits o configuraciones como datos cadena de conexión, también puede resolver el error quitando todos los elementos de la página Configuración del Diseñador de proyectos y, a continuación, leyendo la configuración necesaria.
Se vuelve a establecer como destino un proyecto a una versión diferente de .NET y no se resuelven las referencias.
Si vuelve a tener como destino un proyecto a otra versión de .NET, es posible que las referencias no se resuelvan correctamente en algunos casos. Las referencias completas explícitas a los ensamblados suelen provocar este problema, pero puede resolverlo quitando las referencias que no se resuelven y, a continuación, agregándolas al proyecto. También puede editar el archivo de proyecto para reemplazar las referencias. En primer lugar, quite las referencias del siguiente formulario:
<Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
A continuación, reemplácelos por el formato simple:
<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.