Co się dzieje, gdy Visual Studio powie mi " xcopy zakończył pracę z kodem 4"

Nie jestem zbyt zaznajomiony z wydarzeniami post-build, więc jestem trochę zdezorientowany co do tego, co jest nie tak z moim programem. Podczas kompilacji w visual studio 2010 dostaję następujące:

The command "xcopy C:\Users\Me\Path\Foo.bar\Library\dsoframer.ocx C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D
xcopy C:\Users\Me\Path\Foo.bar\ApplicationFiles C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D
xcopy C:\Users\Me\Path\url\ C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D
rmdir /S /Q C:\Users\Me\Path\Foo.bar\bin\Debug\.gwt-tmp" exited with code 4.    

Program wydaje się działać dobrze, pomimo tego błędu, ale nie chcę po prostu ignorować tego problemu i mam nadzieję, że nic złego się nie stanie. O dziwo, ta linia zaczynała się tylko jako pojedyncze polecenie (pierwsze xcopy), ale gdy kontynuowałem kompilowanie projektu (naprawianie innych problemów, głównie odniesień) komunikat o błędzie rozszerzał się coraz bardziej. Wiesz, co może się dziać?

Edit: Oto wydarzenia postbuild, które wydają się zawodzić --

xcopy $(ProjectDir)Library\dsoframer.ocx $(TargetDir) /Y /E /D
xcopy $(ProjectDir)ApplicationFiles $(TargetDir) /Y /E /D
xcopy $(SolutionDir)com.myUrl.gwt\www $(TargetDir) /Y /E /D
rmdir /S /Q $(TargetDir).gwt-tmp
Author: Arafat, 2011-04-11

10 answers

Xcopy exit code 4 oznacza " wystąpił błąd inicjalizacji. Nie ma wystarczającej ilości pamięci lub miejsca na dysku lub wprowadzono nieprawidłową nazwę dysku lub nieprawidłową składnię w wierszu poleceń."

Wygląda na to, że Visual Studio dostarcza niepoprawne argumenty do xcopy. Sprawdź swoje polecenie zdarzenia post-build za pomocą Project Properties > Right Click > Build Events > Post Build Event.

Zauważ, że jeśli $(ProjectDir) lub podobne terminy makr mają spacje w ścieżkach wynikowych po rozwinięciu, będą musiały być zawinięte w podwójne cudzysłowy. Na przykład:

xcopy "$(ProjectDir)Library\dsoframer.ocx" "$(TargetDir)" /Y /E /D1
 135
Author: Mark Cidade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-10 11:55:45

Przełącz kartę obserwuj na "ouput" i poszukaj polecenia xcopy. Czasami Znajdziesz tu więcej wiadomości ( rzeczywiste wyjście xcopy), które pomogą Ci rozwiązać problem. Jeśli nie widzisz karty wyjście, użyj menu Widok-wyjście, aby ją wyświetlić.

 30
Author: Felice Pollano,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-14 06:24:30

Dodaję do zaakceptowanej odpowiedzi, błąd może wystąpić również, gdy folder docelowy jest tylko do odczytu (często podczas korzystania z TFS)

 26
Author: Pieter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-16 08:23:43

If source file not found xcopy zwraca kod błędu 4 również.

 14
Author: Der_Meister,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-16 06:21:25

Otrzymałem błąd " exited with code 4", gdy polecenie xcopy próbowało nadpisać plik readonly. Udało mi się rozwiązać ten problem dodając /R do polecenia xcopy. / R wskazuje Tylko do odczytu należy nadpisać

Stare polecenie:

XCOPY /E /Y "$(ProjectDir)source file" "destination"

Nowe polecenie

XCOPY /E /Y /R "$(ProjectDir)source file" "destination"
 10
Author: martijn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-28 13:28:49

Jak wyjaśniają inne odpowiedzi, kod wyjścia 4 może mieć wiele przyczyn.

Zauważyłem przypadek, w którym wynikowe nazwy ścieżek przekroczyły maksymalną dozwoloną długość (tak jak tutaj).

Zastąpiłem xcopy przez robocopy dla dotkniętego zdarzenia post build; robocopy wydaje się obsługiwać ścieżki nieco inaczej i był w stanie wykonać zadanie kopiowania, którego xcopy nie był w stanie obsłużyć.

 8
Author: CodeFox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:03:09

Oznacza :

Wystąpił błąd inicjalizacji. Nie ma wystarczającej ilości pamięci lub miejsca na dysku lub wprowadzono nieprawidłową nazwę dysku lub nieprawidłową składnię w wierszu poleceń.

Więc w zasadzie to może być prawie wszystko haha...spróbuj uruchomić polecenie pojedynczo z wiersza polecenia, aby dowiedzieć się, która część polecenia sprawia Ci problemy.

 5
Author: BrandonZeider,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-11 19:40:36

I got this along with the message

Nieprawidłowa Specyfikacja napędu

Podczas kopiowania do udziału sieciowego bez podawania nazwy dysku, np.

xcopy . \\localhost

Gdzie

xcopy . \\localhost\share

Oczekiwano

 3
Author: Thomas Weller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-15 14:23:49

W moim przypadku problem wynikał z błędnej kolejności budowania. Jeden projekt miał polecenie xcopy na zdarzeniach po kompilacji, aby skopiować pliki z folderu bin do innego folderu. Ale z powodu niewłaściwych zależności nowe pliki były tworzone w folderze bin, podczas gdy xcopy jest w toku.

W VS kliknij prawym przyciskiem myszy na projekcie, w którym masz zdarzenia post-build. Przejdź do Build Dependencies > Project Dependencies i upewnij się, że jest poprawna. Zweryfikuj kolejność budowania projektu (Następna zakładka zależności) jako cóż.

 1
Author: sree,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-31 06:40:52

Natknąłem się na ten problem, więc uruchomiłem polecenie xcopy z linii poleceń i było napisane:

File creation error - The requested operation cannot be performed on a file with
 a user-mapped section open.

W rzeczywistości Visual Studio coś trzymało. Właśnie uruchomiłem Visual Studio i zadziałało.

 0
Author: NielW,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-13 20:38:17