martes, 5 de julio de 2016

Error al convertir aplicación VS2008 en VS2012 - The primary reference "xxxxx.dll" could not be resolved because it has an indirect dependency on the .NET Framework assembly

Al abrir la solución de una aplicación de escritorio (WPF/C#) desarrollada en Visual Studio 2008 en un Visual Studio 2012, luego de realizar la conversión de los proyectos, envía el siguente error/warning:

The primary reference "X:\xxxx\xxx\xxx.dll" could not be resolved because it has an indirect dependency on the .NET Framework assembly "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework

Aunque se cambie el Framework utilizado por el proyecto que genera la dll con problemas, sigue saliendo este error.
Para corregir esto, se debe editar el proyecto donde se referencia la dll con problemas (click derecho -> abrir con...) y buscar la linea donde se encuentra la referencia:

<ProjectReference Include="..\xxxxx\PROYECTO.csproj">
<Project>{8DD71CAF-BEF7-40ED-9DD0-25033CD8009D}</Project><Name>PROYECTO</Name>
</ProjectReference>
Se debe agregar la etiqueta "SpecificVersion" en "true", para que el proyecto pueda generar la dll en la versión que se ha estacificado del Framework .NET

<ProjectReference Include="..\xxxxx\PROYECTO.csproj">
<Project>{8DD71CAF-BEF7-40ED-9DD0-25033CD8009D}</Project><Name>PROYECTO</Name>
<SpecificVersion>true</SpecificVersion>
</ProjectReference>