540 Stimmen

Fehler 'LINK : fataler Fehler LNK1123: Fehler bei der Konvertierung nach COFF: Datei ungültig oder beschädigt' nach der Installation von Visual Studio 2012 Release Preview

Ich habe Visual Studio 2012 Release Preview installiert, und es scheint in Ordnung zu sein, aber jetzt, wenn ich versuche, Visual Studio 2010 zum Kompilieren von C++-Projekten zu verwenden, erhalte ich die folgende Fehlermeldung:

LINK : fataler Fehler LNK1123: Fehler bei der Konvertierung nach COFF: Datei ungültig oder beschädigt

Ich bin mir nicht 100%ig sicher, aber es scheint sich um Projekte zu handeln, die .rc (Ressourcen-)Dateien enthalten.

Ich habe versucht, Visual Studio 2010 über die Funktion "Hinzufügen/Entfernen" zu reparieren und neu zu starten, aber das hat keine Wirkung.

Ich erhalte auch den gleichen Fehler, wenn ich Visual Studio 2012 RC zum Kompilieren der C++-Projekte verwende, wenn ich das Visual Studio 2010-Toolset verwenden soll. Ein Upgrade auf das Visual Studio 2011-Toolset behebt das Problem (aber natürlich möchte ich dies nicht für Produktionscode tun).

Update: Ich habe Visual Studio 2012 deinstalliert neu gebootet, und das Problem besteht immer noch! Hilfe!

10voto

Sepideh Abadpour Punkte 2282

Ich hatte das gleiche Problem mit Microsoft Visual Studio 2010 Ultimate und wurde nach der in der folgenden Tabelle beschriebenen Methode gelöst dieses youtube-Video

Im Video wird vorgeschlagen, die Datei umzubenennen cvtres.exe en C:\Program Dateien (x86) \Microsoft Visual Studio 10.0 \VC\bin (in my Win7X64 matchine) a cvtres-alt.exe

10voto

Saji Punkte 103

Ich habe Visual Studio 2012 nicht installiert, aber ich habe immer noch diesen Fehler in Visual Studio 2010. Ich habe dieses Problem nach der Installation von Visual Studio 2010 SP1 behoben.

7voto

robin.lo Punkte 91

Bei mir funktionierte es nicht, nachdem ich Enable Incremental Linking -> "No (/INCREMENTAL:NO)" gewählt hatte, aber es funktionierte, nachdem ich die rc-Datei gelöscht hatte.

6voto

Die in Sente Punkte 9197

+1 für Benutzer Kurz für eine Antwort Das hat bei mir funktioniert!

Ich habe versucht, dieses Problem mit folgenden Mitteln zu beheben msbuild /v:diag und ich sehe, dass MSBuild versucht, ein Manifest in die ausführbare Datei einzubetten, und zwar mit <somename>.dll.embed.manifest.res in der Linker-Befehlszeile, wobei es sich um eine Ressourcendatei handelt, die aus <somename>.dll.embed.manifest erstellt wurde. Aber die Manifestdatei ist eine leere Unicode-Textdatei. (Das heißt, eine Zwei-Byte-Datei mit dem Unicode-Präfix 0xFEFF)

Das Root-Problem scheint also etwas damit zu tun zu haben, dass die Manifestdatei nicht generiert wird, oder dass sie verwendet wird, obwohl <somename>.dll.intermediate.manifest hätte verwendet werden müssen.

Eine alternative Lösung scheint zu sein, die Option "Manifest einbetten" unter Eigenschaften, Manifest-Tool, Eingabe und Ausgabe zu deaktivieren.

5voto

Hung Pham Punkte 167

Zusammengefasst:

Step1

Project Properties 
   -> Configuration Properties 
       -> Linker (General) 
          -> Enable Incremental Linking -> "No (/INCREMENTAL:NO)"

wenn Schritt1 nicht funktioniert, Schritt2 durchführen

Project Properties 
   -> Configuration Properties 
       -> Manifest Tool (Input and Output) 
          -> Enable Incremental Linking -> "No"

Wenn Schritt 2 nicht funktioniert, führen Sie Schritt 3 aus. Kopieren Sie eine Datei von:

  1. C:\Program Dateien (x86) \Microsoft Visual Studio 11.0 \VC\bin\cvtres.exe
  2. C:\Program Dateien (x86) \Microsoft Visual Studio 12.0 \VC\bin\cvtres.exe
  3. C:\Program Dateien (x86) \Microsoft Visual Studio 13.0 \VC\bin\cvtres.exe

    Dann ersetzen Sie durch C:\Program Dateien (x86) \Microsoft Visual Studio 10.0 \VC\bin\cvtres.exe Bei mir klappt es in 3 Schritten

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X