Visual Studio, bonkers gegangen: "Der Verzeichnisname ist ungültig" Fehlermeldung, wenn Sie versuchen zu kompilieren
Für einige sehr seltsamen Grund, meine Visual Studio 2008, wenn Sie versuchen, zu kompilieren eines C# - Projekt, versucht zu schreiben der Ausgabe die ausführbare Datei in ein Verzeichnis mit dem gleichen Namen wie eine ausführbare Datei, zumindest scheint es, dass das, was die Fehlermeldung bedeutet. Nach dem ausführen Kompilieren auf jedem meiner Projekte, CSC.EXE Berichte die folgende compiler-Fehlermeldung:
Could not write to output file
'D:\Projects\Examples\StringBuilderVsString\obj\Release\StringBuilderVsString.exe'
-- "Der Verzeichnisname ist ungültig. '
Wenn ich mir im inneren obj\Release
oder obj\Debug
alle zwischen Ressourcen, wie StringBuilderVsString.pdb sind richtig geschrieben, die in diesem Verzeichnis. Es sind keine Leerzeichen im Verzeichnis. Der Fehler passiert auch beim ausführen csc.exe von der Eingabeaufforderung aus.
Bei der Ausführung von Process Monitor, ich sehe nur den ERFOLG für Dateien zugreifen csc.exe und ich sehe keine Abfragen oder schriftlich an Standorten, die noch nicht vorhanden sind.
Irgendwelche Ideen, um diese willkommen sind.
the double projFilename.exe is intentional
warum?- Ich denke er meint er absichtlich schrieb, aber offensichtlich VS etwas falsch zu kommen mit diesem.
- Ich meinte: ich schrieb es, weil das ist, wo Visual Studio versucht, schreiben die Ausgabe. Es sollte ohne den zweiten Namen, natürlich sollte es auch nicht versuchen zu schreiben die Ausgabe in ein Verzeichnis gleich dem Ausgabe-executable mit dem Namen. @Kent: genau
- Ah, verstanden. In diesem Fall die post .csproj-Datei; könnte erhellend sein.
- die obigen Kommentare haben, für ungültig erklärt werden, nachdem ich aktualisierte die Frage einer genaueren Darstellung des Problems.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gelöst! Vielen Dank für den input, ich habe inzwischen eine Lösung gefunden. Die Ursache ist selten, aber es kann passieren, andere, so habe ich beschlossen, um Antwort auf meine eigene Frage hier:
Ursache
Einen falschen oder unzugänglich
%TEMP%
Ort, oder in einem unzugänglichen%USERPROFILE%
Weg.Hatte ich verschoben, diese Wege zu einem schnelleren SSD-Laufwerk zur Beschleunigung kompilieren. Das Laufwerk abgestürzt ist und das OS nicht mehr finden (wie berichtet auf ServerFault hier) und somit die bewegten Orten (internet-caches, eigene Dateien und temp) hatte nicht mehr zugegriffen werden.
Die genannten Fehler von Visual Studio ist irreführend: es hat nichts zu tun mit der name der Datei (und ich bin immer noch Fragen, warum es war das Abfragen der ausführbaren Datei wie ein Verzeichnis), der Fehler wurde über die %TEMP% - Verzeichnis als schlecht.
Lösung
Fix die
%USERPROFILE%
oder%TEMP%
Umgebungsvariablen, (im Fall Sie vergessen haben, es ist hier: System > Erweitert > Umgebungsvariablen).Hinweis: Die typische und die Standard-TEMP-Einstellung ist zu verwenden, die Umgebungsvariable USERPROFILE, wie in der Standard -
%USERPROFILE%\AppData\Local\Temp
. Das funktioniert auch, aber nur, wenn in der registry, den Schlüssel unterHKCU\Environment\TEMP
ist der TypREG_EXPAND_SZ
und nichtREG_SZ
.Stellen Sie sicher, dass Sie genug freien Speicherplatz auf Ihrer Festplatte, die ich erlebt haben das gleiche Problem, habe es gelöst nach Zuweisung von mehr freien Speicherplatz.
Ich war auch immer eine ähnliche Fehlermeldung could not write to output file '..........................' --
"Der Verzeichnisname ist ungültig. '
Ich habe versucht, Ordner löschen, ändern von Umgebungsvariablen wie oben vorgeschlagen (z.B. %USERPROFILE% oder %TEMP%), aber nichts schien zu funktionieren.
Als ich nochmal schaute auf die Ausgabe im Ausgabe-Fenster/Fenster in VS 2008, fand ich die folgende Zeile
Diese Linie führte mich zu der Lösung.
Ich schuf den nicht vorhandenen 2 Ordner in "C:\Users\Administrator\AppData\Local\Temp" Ordner.
Durch die Art, wie wir bemerkt, das nur auf alle unsere Cloud-Instanzen. Etwas tun, mit virualization? .. Weiß nicht wirklich
%temp%
entstehen durch den Prozess, muss Sie (wie Sie können nie sicher sein, dass Sie es das nächste mal um)