Solución de problemas de errores de destino de .NET Framework

              Aplicable 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.

Referencia a un proyecto o ensamblado que tiene como destino una versión diferente de .NET

Puede crear aplicaciones que hagan referencia a proyectos o ensamblados destinados a diferentes versiones de .NET. Por ejemplo, puede crear una aplicación que tenga como destino .NET 6 pero haga referencia a un ensamblado que tenga como destino .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 en 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 de destino de los proyectos o ensamblados a los que hace referencia la aplicación.

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 cambia algunas de las referencias, pero es posible que tenga que actualizar algunas referencias manualmente. Por ejemplo, puede producirse uno de los errores mencionados anteriormente si cambia una aplicación a .NET Core 3.1 como destino y esa aplicación tiene referencias, recursos o configuraciones que dependen de .NET 6.

Captura de pantalla que muestra cómo cambiar la plataforma de destino en Visual Studio.

Actualizar referencias en app.config

Para evitar la configuración de la aplicación en aplicaciones de .NET Framework, siga estos pasos:

  1. Abra Explorador de soluciones.
  2. Seleccione Mostrar todos los archivos y, a continuación, edite el archivo app.config en el editor XML de Visual Studio.
  3. Cambie la versión de la configuración para que coincida con la versión adecuada de .NET. Por ejemplo, puede cambiar la configuración de versión de 4.0.0.0 a 2.0.0.0.

De forma similar, para una aplicación que ha agregado recursos, siga estos pasos:

  1. Abra Explorador de soluciones.
  2. Seleccione Mostrar todos los archivos.
  3. Expanda Mi proyecto (Visual Basic) o Propiedades (C#) y, a continuación, edite el archivo Resources.resx en el editor XML de Visual Studio.
  4. Cambie la configuración de versión de 4.0.0.0 a 2.0.0.0.

Actualizar recursos

Si la aplicación tiene recursos como iconos, mapas de bits o configuraciones, como cadenas de conexión de datos, también puede resolver el error quitando todos los elementos de la página Configuración de project Designer y, a continuación, leyendo la configuración necesaria.

Se vuelve a dirigir un proyecto a una versión diferente de .NET y las referencias no se resuelven

Si vuelve a dirigir un proyecto a una versión diferente de .NET, es posible que las referencias no se resuelvan correctamente en algunos casos. Las referencias completas explícitas a ensamblados suelen provocar este problema, pero puede resolverlo quitando las referencias que no se resuelven y, a continuación, agregándolas de nuevo al proyecto. Como alternativa, 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, sustitúyalos por el formulario simple:

<Reference Include="System.ServiceModel" />

Nota:

Después de cerrar y volver a abrir el proyecto, también debe volver a compilarlo para asegurarse de que todas las referencias se resuelvan correctamente.

Referencias