453 votos

Error 'LINK: LNK1123 error fatal: error durante la conversión a COFF: archivo no válido o corrupto' después de instalar Visual Studio 2012 Release Preview

He instalado Visual Studio 2012 Release Preview, y parece estar bien, pero ahora cuando trato de usar Visual Studio 2010 para compilar proyectos de C++, me sale el siguiente mensaje de error:

ENLACE : fatal error LNK1123: error durante la conversión a COFF: archivo no válido o dañado

Yo no estoy 100% seguro de esto, pero parece estar relacionado con los proyectos que hayan .rc (de recursos) de los archivos en ellos.

He intentado reparar Visual Studio 2010 desde Agregar/Quitar programas y reiniciar, pero esto no tiene ningún efecto.

Me sale el mismo error si utiliza Visual Studio 2012 RC para compilar los proyectos de C++ cuando se configura para utilizar el conjunto de herramientas de Visual Studio 2010. La actualización de Visual Studio 2011 conjunto de herramientas que se corrige el problema (pero por supuesto no quiero hacer esto para que el código de producción).

Actualización: he desinstalado Visual Studio 2012, se reinicia, y el problema persiste! Ayuda!

575voto

Short Puntos 4814

Este MSDN hilo se explica cómo solucionarlo.

Para resumir:

  • Deshabilitar la vinculación incremental, yendo a

    Project Properties 
       -> Configuration Properties 
           -> Linker (General) 
              -> Enable Incremental Linking -> "No (/INCREMENTAL:NO)"
    
  • o instalar VS2010 SP1.

Ediciones (@CraigRinger): tenga en cuenta que la instalación de VS 2010 SP1 se quite la de 64 bits, compiladores. Usted necesita instalar el VS 2010 SP1 compilador pack para recuperarlos.

Esto afecta a Microsoft Windows SDK 7.1 para Windows 7 y Windows .NET 4.0 , así como de Visual Studio 2010.

220voto

Die in Sente Puntos 5387

Si al deshabilitar la vinculación incremental no funciona para usted, y apagar "Incrustar Manifiesto" no funciona bien, busque la ruta de acceso para varias versiones de CVTRES.exe.

Por la depuración con el /VERBOSE opción de vinculador he encontrado el enlazador fue escrito ese mensaje de error cuando se intentó invocar cvtres y fracasó.

Resultó que yo tenía dos versiones de esta utilidad en mi camino. Uno en C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cvtres.exe y de uno en C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe. Después de VS2012 instalar, la versión VS2010 cvtres.exe ya no trabajo. Si ese es el primero en su camino, y el enlazador se decide que necesita para convertir a un .archivo de recursos COFF formato de objeto, el enlace se producirá LNK1123.

(Realmente molesto que el mensaje de error no tiene nada que ver con el problema real, pero que no es inusual para un producto de Microsoft.)

Acabo de borrar/cambiar el nombre de la versión anterior de la utilidad, o re-organizar su variable de entorno PATH, de modo que la versión que funciona es lo primero.

37voto

mloskot Puntos 13971

De acuerdo a este hilo en los foros de MSDN: VS2012 RC instalación de saltos de VS2010 proyectos de C++ , simplemente, tome cvtres.exe de VS2010 SP1

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe

o de VS2012

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe

y la copia más de la cvtres.exe en VS2010 RTM de instalación (el uno sin el SP1)

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe

De esta manera, usted va a utilizar eficazmente la versión corregida de cvtres.exe que es 11.0.51106.1.

Repita los mismos pasos para la versión de 64 bits de la herramienta en C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\cvtres.exe.

Esta solución es una alternativa a la instalación de SP1 para VS2010 - en algunos casos simplemente no se puede instalar el service pack 1 (es decir, si se necesita soporte de pre-SP1 construye).

34voto

Sid Puntos 562

Ir a C: \ Archivos de programa (x86) \ Microsoft Visual 10,0 \ VC \ bin \ CVTRES.exe Estudio

y comprobar la versión de CVTRES.exe:

Versión incorrecta:
03.18.2010
13:16
31048 CVTRES.exe

Versión correcta: 02/21/2011 18:03
31056 CVTRES.exe

Si usted tiene una versión incorrecta hay que ir a

 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe
 

y copiar CVTRES.exe luego reemplazarlo con

 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe
 

33voto

B_Dubb86 Puntos 411

Si ha instalado Visual Studio 2012 RC, entonces instalado .NET 4.5 RC.

Desinstalar .NET 4.5 RC, e instale la versión que necesita (4.0 para VS 2010). Esto debería aclarar cualquier problema que tenga.

Esto resuelve el mismo problema. No hay necesidad de desinstalar Visual Studio.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X