Visual Studio gegangen bonkers: 'Der Verzeichnisname ist ungültig' Fehler beim Versuch zu kompilieren

8

Aus irgendeinem seltsamen Grund versucht mein Visual Studio 2008 beim Versuch, ein C # -Projekt zu kompilieren, die Ausgabe der ausführbaren Datei in ein Verzeichnis mit demselben Namen wie eine ausführbare Datei zu schreiben, zumindest sieht es so aus, als ob der Fehler vorliegt Nachricht impliziert. Nach dem Ausführen der Kompilierung für eines meiner Projekte meldet CSC.EXE den folgenden Compilerfehler:

  

Konnte nicht in die Ausgabedatei schreiben   'D: \ Projekte \ Beispiele \ StringBuilderVsString \ obj \ Release \ StringBuilderVsString.exe'   - 'Der Verzeichnisname ist ungültig. '

Wenn ich in obj\Release oder obj\Debug hineinschaue, werden alle Zwischenressourcen wie StringBuilderVsString.pdb korrekt in dieses Verzeichnis geschrieben. Das Verzeichnis enthält keine Leerzeichen. Der Fehler tritt auch beim Ausführen von csc.exe von der Eingabeaufforderung auf.

Beim Ausführen des Prozessmonitors sehe ich nur SUCCESS für Dateien, auf die csc.exe zugreift, und ich sehe keine Abfragen oder Schreiben an Orte, die nicht existieren.

Ideen dazu sind willkommen.

    
Abel 03.08.2010, 14:45
quelle

3 Antworten

12

Gelöst! Danke für den Input, ich habe inzwischen eine Lösung gefunden. Die Ursache ist selten, aber es kann anderen passieren, also habe ich beschlossen, meine eigene Frage hier zu beantworten:

Ursache

Ein falscher oder nicht zugreifbarer %TEMP% -Platz oder ein nicht zugreifbarer %USERPROFILE% -Pfad.

Ich hatte diese Pfade auf ein schnelleres SSD-Laufwerk verschoben, um das Kompilieren zu beschleunigen. Das Laufwerk ist abgestürzt und das Betriebssystem hat es nicht mehr gefunden (wie berichtet auf ServerFault hier ) und folglich wurden die verschobenen Standorte (Internet-Caches, meine Dokumente und Temp) unzugänglich gemacht.

Der von Visual Studio erwähnte Fehler ist irreführend: Er hat nichts mit dem Namen der Datei zu tun (während ich mich immer noch wundere, warum die ausführbare Datei als Verzeichnis abgefragt wurde), lag der Fehler in der Position% TEMP% schlecht sein.

Lösung

Fix die %USERPROFILE% oder %TEMP% Umgebungsvariablen, (falls du es vergessen hast, ist es hier: System & gt; Erweitert & gt; Umgebungsvariablen ).

Hinweis: Die typische und standardmäßige TEMP-Einstellung besteht darin, die Umgebungsvariable USERPROFILE wie im Standard %USERPROFILE%\AppData\Local\Temp zu verwenden. Dies funktioniert nur, wenn in der Registrierung der Schlüssel unter HKCU\Environment\TEMP vom Typ REG_EXPAND_SZ und nicht REG_SZ ist.

    
Abel 03.08.2010, 17:46
quelle
1

Stellen Sie sicher, dass Sie genügend freien Speicherplatz in Ihrem Laufwerk haben, ich habe das gleiche Problem erfahren, wurde es nach dem Zuweisen von mehr freiem Speicherplatz behoben.

    
Sukesh Chand 01.02.2018 06:14
quelle
0

Ich habe auch einen ähnlichen Fehler erhalten Konnte nicht in die Ausgabedatei '..........................' schreiben -  'Der Verzeichnisname ist ungültig. "

Ich habe versucht, den Ordner zu löschen, ändere die Umgebungsvariablen wie oben vorgeschlagen (d. h.% USERPROFILE% oder% TEMP%), aber nichts schien zu funktionieren. Als ich die Ausgabe im Ausgabefenster / Fenster in VS 2008 erneut betrachtete, fand ich die folgende Zeile

  

"c: \ Windows \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets (3397,13):   Fehler MSB6003: Die angegebene ausführbare Task "cmd.exe" konnte nicht ausgeführt werden   Lauf. Der Verzeichnispfad konnte nicht gefunden werden:   C: \ Benutzer \ Administrator \ AppData \ Local \ Temp \ 2 \ "

Diese Linie hat mich zur Lösung geführt. Ich habe gerade den Ordner "Nicht vorhanden 2" im Ordner "C: \ Benutzer \ Administrator \ AppData \ Local \ Temp" erstellt.

%Vor%

Übrigens haben wir das nur bei all unseren Cloud-Instanzen bemerkt. Etwas mit Virtualisierung? .. weiß nicht wirklich

    
user_v 26.08.2011 20:28
quelle