Visual Studio 2012: cl.exe -1073741701 nur auf x86

Visual Studio 2012: cl.exe -1073741701 nur auf x86

Ich verwende Visual Studio 2012 Professional, aktualisiert auf SP5, unter Windows 7 SP1 mit den neuesten Updates. Ich brauchte Visual Studio 2015 eine Zeit lang, habe es installiert und dann mit dem Standard-Deinstallationsprogramm deinstalliert.

Aber heute musste ich Webkit für Windows erstellen. Das Build-Skript wurde ausgeführt vswhere.exeund erkannte einige Teile von Visual Studio 2015 als „funktionierende“ Installation. Daher musste ich VS2015 „vollständig“ deinstallieren. Dies fand ich hier:https://github.com/Microsoft/VisualStudioUninstaller. Ich habe es einmal ausgeführt und VS2015 ist aus vswhere.exeder Ausgabe verschwunden.

Aber jetzt habe ich ein Problem: Jede App, die ich mit VS2012 zu kompilieren versuche, gibt die Meldung „cl.exe wurde abnormal mit dem Code -1073741701 beendet“ aus.

Ich habe es versucht :

  • VS2012 mit oder ohne SP5 mehrmals neu installiert, einschließlich sauberer Neuinstallation (Hauptinstallation deinstallieren, Abhängigkeiten deinstallieren, erneut installieren), immer noch derselbe Fehler.
  • Habe versucht, VS2012 zu reparieren.
  • Ich habe versucht, es auszuführen C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.exe, es heißt „mspdb110.dll nicht gefunden“.
  • Ich habe Msobj110.dll, Mspdb110.dll, Mspdbcore.dllund Mspdbsrv.exe von kopiert C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE und zum PATH hinzugefügt C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE. Immer noch derselbe Fehler.

Wenn ich die Projektplattform auf x64 umstelle, wird es ohne Probleme kompiliert und ausgeführt. Nur der x86-Compiler kann nicht ausgeführt werden und gibt den oben genannten Fehler aus. Manchmal gibt es in VS2012 ein Popup, dass „cl.exe den Code 0xc000007b nicht ausführen kann“.

Wenn ich ausführe C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat x86, kann ich cl.exefunktionierende 32-Bit-Apps ausführen und sogar kompilieren, aber in der Visual Studio 2012 IDE schlägt die Ausführung jedes Mal fehl cl.exe, egal, was ich tue.

Bitte helfen Sie mir, das Problem zu beheben.

Ich denke, es hat vielleicht etwas mit dem .NET Framework (ich habe 4.5, 4.6 und 4.7 installiert) im MSBuildOrdner zu tun. Vielleicht muss ich das .NET Framework SDK irgendwie neu installieren? Wenn möglich, möchte ich eine Neuinstallation des Betriebssystems vermeiden.

BEARBEITEN: Habe eine Prämie ausgesetzt. Habe immer noch das gleiche Problem.

Ich habe versucht, „run“ ohne Parameter in das Skript „Vor dem Erstellen ausführen …“ einzufügen cl.exe, und es wird von dort ausgeführt! Aber danach wird die IDE cl.exeaus der .NET-Umgebung ausgeführt und gibt Folgendes aus:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(347,5): Fehler MSB6006: „CL.exe“ beendet, Fehlercode -1073741701

Wenn ich die x64-Plattform auswähle, cl.exeläuft es überall einwandfrei. Wenn ich ausführe vcvarsall.bat x86, kann ich ausführen cl.exeund kompilieren.

Das einzige, was ich reparieren muss, ist ein Pfad in der Umgebung, der für den Win32 x86-Build aus der Visual Studio 2012 IDE verwendet wird. Ich kann .NET Framework oder Visual Studio neu installieren (habe es trotzdem versucht) oder einige MSBuild-Konfigurationen bearbeiten. Bitte sagen Sie mir, wo ich das reparieren kann. Das einzige, was ich nicht tun kann, ist das Betriebssystem neu zu installieren, da ich viel Software habe und die Neuinstallation SEHR viel Zeit in Anspruch nehmen würde.

UPDATE: Habe versucht, alles zu deinstallieren, einschließlich .NET Framework 4.5, 4.6, 4.7 und Microsoft SQL Server 2008, 2012. Dann habe ich Visual Studio 2012 Professional RTM installiert. Nach der Installation habe ich beim ersten Durchlauf die Test-App geöffnet und denselben Fehler wie oben erhalten ... die x64-Version funktioniert. Dasselbe nach der Installation von SP5.

UPDATE2: Habe versucht, Dateien von Visual Studio 2012 und Windows SDK und msbuild von einer funktionierenden virtuellen Windows 7 SP1-Maschine zu holen. Es behebt keinen Fehler, das Problem ist immer noch dasselbe. Habe auch versucht, cl.exe durch eine Dummy-32-Bit-App zu ersetzen, verursacht immer noch 0xc000007b, wenn ich den Build von der IDE aus starte. Scheint, als würde Visual Studio beim Ausführen von der IDE cl.exe 32-Bit mit einigen 64-Bit-DLLs verwenden. Aber ich weiß nicht, wie ich es finden und beheben kann.

Antwort1

Wenn Sie eine Visual Studio-Version deinstallieren, während mehrere installiert sind, besteht das Risiko darin, zu viel zu deinstallieren. Visual Studio-Versionen können nebeneinander installiert werden, verwenden aber möglicherweise gemeinsame Komponenten.

Es scheint, dass Ihnen das passiert ist, und Ihre Bemühungen, das Problem durch Kopieren der DLLs und Ändern des Pfads zu beheben, haben die Verwirrung nur noch verstärkt. Derzeit glaube ich, dass Ihr Pfad und andere Umgebungsvariablen die Verwechslung von 32-Bit- und 64-Bit-DLLs verursachen, es sei denn, Sie setzen vcvarsall.batsie zurück.

Ich glaube nicht, dass ich weitere Ideen zur weiteren Lösung der Situation anbieten sollte, da dies das Problem nur verschlimmern und versteckte Zeitbomben für die Zukunft hinterlassen könnte.

Dies ist der beste Weg, der mir für eine Neuinstallation von Visual Studio und .Net einfällt:

  • Deinstallieren Sie Visual Studio 2012 Professional sauber mit Revo Uninstaller Freeware
  • Deinstallieren Sie alle .Net-Versionen, die Sie über Systemsteuerung > Programme und Funktionen sowie über Windows-Funktion ein- oder ausschalten können.
  • Bereinigen Sie alle Ordner und die Registrierung manuell oder mit einem Cleaner wie CCleaner
  • Installieren Sie die .Net-Version(en) neu und versuchen Sie dabei, deren Anzahl zu minimieren (normalerweise benötigen Sie nur die neueste Version).
  • Installieren Sie Visual Studio 2012 Professional und aktualisieren Sie auf SP5.

Ich kann keinen Erfolg garantieren, aber so würde ich versuchen, eine wirklich saubere Installation zu erreichen und eine Neuinstallation von Windows zu vermeiden.

Ich schlage vor, als Backup ein Image der Systemfestplatte zu erstellen, nur für den Fall, dass Sie darauf zurückgreifen können. Ich empfehle AOMEI Backupper Standard.

Antwort2

Hatte das gleiche Problem mit VS2015. In meinem Fall wurde das Problem durch das Löschen der folgenden Dateien aus dem Projektordner behoben

\.vs\myProjectName\v14\.suo
\myProjectName.VC.db
\x64 (the whole x64 build output folder if there is one)

verwandte Informationen