Что происходит не так, когда Visual Studio говорит мне " xcopy вышел с кодом 4"
Я не очень хорошо знаком с событиями после сборки, поэтому я немного смущен тем, что происходит с моей программой. При компиляции в visual studio 2010, я получаю следующее:
The command "xcopy C:UsersMePathFoo.barLibrarydsoframer.ocx C:UsersMePathFoo.barbinDebug /Y /E /D
xcopy C:UsersMePathFoo.barApplicationFiles C:UsersMePathFoo.barbinDebug /Y /E /D
xcopy C:UsersMePathurl C:UsersMePathFoo.barbinDebug /Y /E /D
rmdir /S /Q C:UsersMePathFoo.barbinDebug.gwt-tmp" exited with code 4.
программа появляется чтобы работать нормально, несмотря на эту ошибку, но я не хочу просто игнорировать эту проблему и надеемся, что ничего плохого не происходит. Как ни странно, эта строка начиналась как только одна команда (первая xcopy), но поскольку я продолжал компилировать проект (исправляя другие проблемы, в основном ссылки) сообщение об ошибке расширяется все больше и больше. Есть идеи, что может произойти?
Edit: вот события postbuild, которые, похоже, терпят неудачу --
xcopy $(ProjectDir)Librarydsoframer.ocx $(TargetDir) /Y /E /D
xcopy $(ProjectDir)ApplicationFiles $(TargetDir) /Y /E /D
xcopy $(SolutionDir)com.myUrl.gwtwww $(TargetDir) /Y /E /D
rmdir /S /Q $(TargetDir).gwt-tmp
10 ответов:
xcopy код выхода 4 означает"ошибка инициализации. Недостаточно памяти или дискового пространства, или вы ввели недопустимое имя диска или недопустимый синтаксис в командной строке."
похоже, что Visual Studio предоставляет недопустимые аргументы для xcopy. Проверьте свою команду события после сборки через
Project Properties > Right Click > Build Events > Post Build Event
.обратите внимание, что если
$(ProjectDir)
или аналогичные термины макро пробелы в полученном пути, когда расширяется, то они должны быть обернуты в двойные двойные кавычки. Например:xcopy "$(ProjectDir)Library\dsoframer.ocx" "$(TargetDir)" /Y /E /D1
переключите вкладку часы на "выход" и найдите команду xcopy. Иногда здесь вы найдете еще несколько сообщений (фактический вывод xcopy), которые могут помочь вам решить эту проблему. Если вкладка вывод не отображается, используйте меню Вид-вывод для ее отображения.
Я дополнение к принятому ответу, ошибка также может возникнуть, когда папка назначения доступна только для чтения (обычно при использовании TFS)
Я получил ' выход с кодом 4' ошибка, когда команда xcopy пыталась перезаписать файл только для чтения. Мне удалось решить эту проблему, добавив / R к команде xcopy. Элемент / R указано только для чтения файлы должны быть переписаны
старая команда:
XCOPY /E /Y "$(ProjectDir)source file" "destination"
новая команда
XCOPY /E /Y /R "$(ProjectDir)source file" "destination"
Как объясняют другие ответы, код выхода 4 может иметь много причин.
Я заметил, что в случае, когда результирующие имена путей превысили максимально допустимую длину (как и здесь).
Я заменил xcopy на robocopy для затронутого события post build; robocopy, похоже, обрабатывает пути немного по-другому и смог выполнить задачу копирования, которую xcopy не смог обработать.
ошибка инициализации. Недостаточно памяти или дискового пространства, или вы ввели недопустимое имя диска или недопустимый синтаксис в командной строке.
Так что в основном это может быть что угодно ха-ха...попробуйте выполнить команду из командной строки, чтобы выяснить, какая часть, какая команда дает вам неприятности.
Я получил это вместе с
неверная спецификация диска
при копировании в сетевую папку без указания имени диска, например,
xcopy . \localhost
здесь
xcopy . \localhost\share
ожидается
в моем случае проблема была связана с неправильным порядком сборки. В одном проекте была команда xcopy для событий после сборки для копирования файлов из папки bin в другую папку. Но из-за неправильных зависимостей новые файлы создавались в папке bin во время выполнения xcopy.
в VS щелкните правой кнопкой мыши на проекте, где у вас есть события после сборки. Перейдите в раздел построение зависимостей > зависимости проекта и убедитесь, что он правильный. Проверьте порядок сборки проекта (Следующая вкладка зависимостей) как что ж.
я столкнулся с этой проблемой, поэтому я запустил команду xcopy из командной строки, и она сказала:
File creation error - The requested operation cannot be performed on a file with a user-mapped section open.
на самом деле это была Visual Studio, держащаяся за что-то. Я просто перезапустил Visual Studio, и это сработало.