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

530
NoAngel

Ich verwende Visual Studio 2012 Professional, das unter Windows 7 SP1 mit den neuesten Updates auf SP5 aktualisiert wurde. Ich brauchte Visual Studio 2015 für einige Zeit, installierte es und deinstallierte es mit dem Standard-Deinstallationsprogramm.

Aber heute musste ich Webkit für Windows erstellen. Das Build-Skript wurde ausgeführt, vswhere.exeund einige Teile von Visual Studio 2015 wurden als "funktionierende" Installation erkannt. Daher musste für VS2015 eine vollständige Deinstallation durchgeführt werden, die ich hier gefunden habe: https: // github. de / Microsoft / VisualStudioUninstaller . Ich habe es einmal ausgeführt und VS2015 verschwand aus der vswhere.exeAusgabe.

Aber jetzt habe ich ein Problem: Jede App, die ich mit VS2012 zu kompilieren versuche, gibt "cl.exe abnormal beendet mit Code -1073741701".

Ich habe es versucht :

  • VS2012 mit oder ohne SP5 mehrmals neu installiert, einschließlich Neuinstallation (Main deinstallieren, Abhängigkeiten deinstallieren, erneut installieren), immer noch derselbe Fehler.
  • Versucht, VS2012 zu reparieren.
  • Ich habe versucht zu laufen C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.exe, es heißt "mspdb110.dll nicht gefunden".
  • Ich kopierte Msobj110.dll, Mspdb110.dll, Mspdbcore.dllund Mspdbsrv.exe von C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE und zu dem Pfad 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 sie ohne Probleme kompiliert und ausgeführt. Nur x86-Compiler kann nicht ausgeführt werden und gibt den obigen Fehler aus. In VS2012 gibt es manchmal ein Popup, dass "cl.exe Code 0xc000007b nicht ausführen kann".

Wenn ich ausgeführt werde C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat x86, kann ich cl.exe32-Bit-Anwendungen ausführen und sogar kompilieren. Innerhalb von Visual Studio 2012 IDE kann sie jedoch nicht cl.exejedes Mal ausgeführt werden, egal was ich mache.

Bitte helfen Sie mir, das Problem zu beheben.

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

BEARBEITEN: Begann eine Kopfprämie. Habe immer noch das gleiche problem.

Ich habe versucht, Run cl.exeohne Parameter in das Skript "Run before build ..." einzufügen, und es läuft von dort aus! Danach läuft die IDE cl.exeaus der .NET-Umgebung und gibt Folgendes:

C: \ Programme (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V110 \ Microsoft.CppCommon.targets (347,5): Fehler MSB6006: "CL.exe" Fehlercode -1073741701 abgebrochen

Wenn ich die x64-Plattform auswähle, cl.exeläuft das überall einwandfrei. Wenn ich renne vcvarsall.bat x86, kann ich laufen cl.exeund kompilieren.

Das einzige, was ich beheben muss, ist ein Pfad in der Umgebung, der für Win32 x86 Build von Visual Studio 2012 IDE verwendet wurde. Ich kann .NET Framework oder Visual Studio neu installieren (habe es aber trotzdem versucht) oder einige MSBuild-Konfigurationen bearbeiten. Bitte sagen Sie mir, wo dies möglich ist. Das einzige, was ich nicht tun kann, ist das Betriebssystem neu zu installieren, da ich viel Software habe und eine Neuinstallation viel Zeit in Anspruch nehmen kann.

UPDATE: Es wurde versucht, alles zu deinstallieren, einschließlich .NET Framework 4.5, 4.6, 4.7 und Microsoft SQL Server 2008 2012. Installieren Sie anschließend Visual Studio 2012 Professional RTM. Nach der Installation beim ersten Start habe ich die Test-App geöffnet und die gleiche Fehlermeldung wie oben angezeigt ... Die x64-Version funktioniert. Gleiche nach der Installation von SP5.

UPDATE2: Versuchte, Dateien aus Visual Studio 2012, Windows SDK und msbuild von der Installation der virtuellen Maschine mit Windows 7 SP1 zu überzeugen. Es wird kein Fehler behoben, dasselbe Problem. Es wurde auch versucht, die Datei cl.exe durch eine 32-Bit-Dummy-App zu ersetzen. Dies führt immer dann zu 0xc000007b, wenn ich Build von IDE aus ausführe. Scheint, als wenn IDE von IDE ausgeführt wurde, verwendet Visual Studio cl.exe 32-Bit mit einigen 64-Bit-DLLs. Aber ich weiß nicht, wie ich es finden und reparieren kann.

0

2 Antworten auf die Frage

0
harrymc

Das Risiko bei der Deinstallation einer Visual Studio-Version, wenn mehrere installiert sind, besteht in einer zu hohen Deinstallation. Visual Studio-Versionen können nebeneinander installiert werden, sie können jedoch gemeinsame Komponenten verwenden.

Es scheint, dass dies mit Ihnen passiert ist, und Ihre Bemühungen, das Problem durch Kopieren von DLLs und Ändern des PFADs zu beheben, haben nur zur Verwirrung beigetragen. Derzeit glaube ich, dass Ihr PATH und andere Umgebungsvariablen das Verwechseln von 32-Bit- und 64-Bit-DLLs verursachen, sofern Sie nicht vcvarsall.batzum Zurücksetzen ausgeführt werden.

Ich denke nicht, dass ich mehr Ideen für die weitere Behebung der Situation anbieten sollte, da dies das Problem nur verschlimmern und verborgene Zeitbomben für die Zukunft hinterlassen kann.

Dies ist der nächstgelegene Weg für eine Neuinstallation von Visual Studio und .NET, die mir einfallen kann:

  • Deinstallieren Sie Visual Studio 2012 Professional mit der Freeware Revo Uninstaller
  • Deinstallieren Sie alle .Net-Versionen, die Sie über Systemsteuerung> Programme und Funktionen sowie über die Windows-Funktion aktivieren oder deaktivieren können
  • Scrubben Sie alle Ordner und die Registrierung manuell oder durch Ausführen eines Bereinigungsprogramms wie CCleaner
  • Installieren Sie die .Net-Version (en) erneut, während Sie versuchen, ihre Anzahl zu minimieren (normalerweise sollten Sie nur die neueste Version benötigen).
  • Installieren Sie Visual Studio 2012 Professional und aktualisieren Sie auf SP5.

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

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

Danke für die Antwort. Leider habe ich mein Bestes gegeben, alles und .NET Framework neu zu installieren. Das Installationsprogramm von Visual Studio ist ziemlich gut und installiert .NET Framework mit allen Abhängigkeiten und Dateien. Ich denke, das einzige, was durcheinander gebracht wird, ist ein Pfad zu mspdb110.dll. 32-Bit-cl.exe versucht irgendwie, 64-Bit-DLL zu laden. Es gibt genau zwei mspdb110.dll auf meinem PC, einen im IDE-Ordner (32 Bit) und einen anderen im AMD64-Ordner (64-Bit). Seltsam ist es nur, wenn es unter IDE von msbuild lief. Meine Idee ist, dummy cl.exe zu machen und die Umgebung zu überprüfen, die es verwendet. Ich weiß immer noch nicht, wo ich den von msbuild festgelegten Pfad ändern kann. NoAngel vor 5 Jahren 0
Wenn Sie alles wirklich gut schrubben, sollte der PFAD nicht falsch sein. Vergewissern Sie sich nach der vollständigen Deinstallation, dass sich im PATH nichts mehr befindet (CCleaner sollte dies jedoch erkennen). harrymc vor 5 Jahren 0
OK, werde es später versuchen. Ich möchte nur sehen, ob es eine einfachere Lösung gibt, bevor Sie alles deinstallieren und scannen. All dies für eine DLL. Wenn nichts hilft und CCleaner das tut, ist +50 Euer :). NoAngel vor 5 Jahren 0
Ich verstehe. Das Deinstallieren oder Installieren von Visual Studio ist ein großer Schmerz und das wiederholte Wiederholen ist einfach nur miserabel. harrymc vor 5 Jahren 1
Stellen Sie sicher, dass Sie alles, was Sie manuell gemacht haben, rückgängig machen, da das Deinstallationsprogramm davon sicherlich nichts weiß und es nicht sicher ist, dass Revo oder CCleaner es fangen können. harrymc vor 5 Jahren 0
Ich habe es versucht (saubere Deinstallation, CCleaner, Neuinstallation, Update 5). Leider löst es mein Problem nicht. Trotzdem danke! Interessante Sache, wenn ich Dummy-32-Bit-Exe statt cl.exe, die einen Fehler verursacht, lege, gibt Visual Studio 2012 noch 0xc000007b wie wenn 32-Bit-EXE mit 64-Bit-DLL ausgeführt würde ... Wenn ich wusste, einen Weg, um welche DLL zu verfolgen , und wie ich es ändern kann, kann ich wahrscheinlich beheben. Leider nicht. NoAngel vor 5 Jahren 0
Wenn Sie die .exe-Datei kennen, sollten Sie die Abhängigkeiten mithilfe des [Dependency Walker] (http://www.dependencywalker.com/) leicht nachverfolgen. Andernfalls können Sie mit [Process Monitor] (https://docs.microsoft.com/de-de/sysinternals/downloads/procmon) nachverfolgen, was passiert. harrymc vor 5 Jahren 0
Alles in allem glaube ich nicht, dass es Ihnen gelungen ist, die Ursache des Problems völlig ungeschehen zu machen. Eine saubere Deinstallation plus Neuinstallation hätte eine gesunde Situation wiederhergestellt. Wenn das Problem VS2015 war, kann eine erneute Installation und Deinstallation mithilfe von Revo diesmal hilfreich sein, damit das oben beschriebene Verfahren erfolgreich ausgeführt werden kann. Aber das alles kostet Sie viele Stunden und Tage, und ich bezweifle, ob ich wirklich die Neuinstallation von Windows empfehlen sollte, anstatt so viel Zeit mit Manipulationen zu verbringen, die fehlschlagen, obwohl dies auch zeitaufwändig sein kann. harrymc vor 5 Jahren 1
Will versuchen, Visual Studio 2015 neu zu installieren. Ich denke, nur die Installation reicht aus, da sowohl VS2012 als auch VS2015 vor und nach der Deinstallation von VS2015 bearbeitet werden. Es wird auch interessant sein, wenn der C ++ - 32-Bit-Compiler von VS2015 weiterhin funktioniert. NoAngel vor 5 Jahren 0
Ich habe es ausprobiert: cl.exe 32-Bit von VS2015 funktioniert, aber es gibt seltsame Link-Fehler: "LIBCMTD.lib (loadcfg.obj): 3 nicht aufgelöste Symbole: ___guard_fids_table, ___guard_fids_count, ___guard_flags" . Befehlszeilenaufbau funktioniert. 64-Bit-Compiler in 2012 arbeiten 2015. VS2015 Update 3 angewendet, immer noch dasselbe. VS2012 cl.exe 32-Bit gibt den gleichen Fehler wie vor der Installation von VS2015 aus. Ich denke, ich werde das Betriebssystem später aufgeben und neu installieren, wenn ich Zeit finde. Zumindest kann ich jetzt auf 64-Bit kompilieren. NoAngel vor 5 Jahren 0
VS und .Net sind ein sehr komplexes Produkt, und wenn sie schief gehen, können sie nicht immer behoben werden. Ich persönlich vermeide es, sie aus gutem Grund zu deinstallieren, denke ich. harrymc vor 5 Jahren 0
0
Philipp Preis

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) 
... aber nur weil damit die VC-Zielversion meines Projekts zurückgesetzt wird. Beim Zurücksetzen auf die Originalversion wurde das Problem leider zurückgegeben. Philipp Preis vor 5 Jahren 0
Bei meinem Problem geht es nicht um Projekteinstellungen. Sie tritt immer bei jedem neuen Projekt und auch bei allen Projekten auf. Es gibt immer noch eine Möglichkeit, die VS-Installation zu reparieren, aber ich sehe, dass hier niemand weiß, wie. NoAngel vor 5 Jahren 0