Я не очень хорошо знаком с событиями после сборки, поэтому я немного не понимаю, что не так с моей программой. При компиляции в Visual Studio 2010 я получаю следующее:
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.
Программа представляется для запуска штраф, несмотря на эту ошибку, но я не хочу , чтобы просто игнорировать этот вопрос и надежда ничего плохого не происходит. Как ни странно, эта строка начиналась как одна команда (первая xcopy), но по мере того, как я продолжал компилировать проект (исправляя другие проблемы, в основном ссылки), сообщение об ошибке становилось все больше и больше. Есть идеи, что может происходить?
Изменить: вот события postbuild, которые, похоже, не работают -
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
c#
visual-studio-2010
visual-studio-2012
xcopy
Ворон-мечтатель
источник
источник
Administrator privileges
. Для копирования в определенные места требуются права администратора.Ответы:
Код выхода 4 Xcopy означает « Произошла ошибка инициализации. Недостаточно памяти или места на диске, либо вы ввели недопустимое имя диска или недопустимый синтаксис в командной строке ».
Похоже, Visual Studio предоставляет недопустимые аргументы для xcopy. Проверьте свою команду события после сборки через
Project > Right Click > Properties > Build Events > Post Build Event
.Обратите внимание, что если
$(ProjectDir)
в результирующих путях в результирующих путях макросов или подобных им есть пробелы, их необходимо заключить в двойные кавычки. Например:источник
"command args"
).$(ProjectDir)
(и / или аналогичный) имеет пробелы в расширенном пути, тогда его нужно будет заключить в кавычки. Например:xcopy "$(ProjectDir)Library\dsoframer.ocx" "$(TargetDir)" /Y /E /D1
Переключите вкладку часов на «выход» и найдите команду xcopy. Иногда здесь вы можете найти еще одно сообщение (фактический вывод xcopy), которое может помочь вам решить проблему. Если вы не видите вкладку вывода, используйте меню «Просмотр-вывод», чтобы отобразить ее.
источник
В дополнение к принятому ответу ошибка также может возникать, когда папка назначения доступна только для чтения (часто при использовании TFS)
источник
Если исходный файл не найден, xcopy также возвращает код ошибки 4 .
источник
$(TargetDir)
который заканчивается наRelease\
. У меня$(ProjectDir)\bin\Release
\\
Я получил сообщение об ошибке « Выход с кодом 4 », когда команда xcopy попыталась перезаписать файл, доступный только для чтения. Мне удалось решить эту проблему, добавив / R в команду xcopy. / R указывает только для чтения файлы должны быть перезаписаны
старая команда:
новая команда
источник
Как объясняют другие ответы, код выхода 4 может иметь множество причин.
Я заметил случай, когда результирующие имена путей превышали максимально допустимую длину (как здесь ).
Я заменил xcopy на robocopy для затронутого события сборки поста; Похоже, что robocopy обрабатывает пути немного по-другому и смог выполнить задачу копирования, которую xcopy не смогла обработать.
источник
Это означает :
Так что в основном это может быть что угодно, ха-ха ... попробуйте запустить команду по одной из командной строки, чтобы выяснить, какая часть какой команды вызывает у вас проблемы.
источник
Я получил это вместе с сообщением
при копировании в общий сетевой ресурс без указания имени диска, например
где
ожидалось
источник
Я столкнулся с этой проблемой, поэтому я запустил команду xcopy из командной строки, и она сказала:
На самом деле Visual Studio за что-то держалась. Я только что перезапустил Visual Studio, и все заработало.
источник
В моем случае проблема была связана с неправильным порядком сборки. В одном проекте была команда xcopy для событий после сборки для копирования файлов из папки bin в другую папку. Но из-за неправильных зависимостей новые файлы создавались в папке bin, пока выполняется xcopy.
В VS щелкните правой кнопкой мыши проект, в котором есть события после сборки. Перейдите в Build Dependencies> Project Dependencies и убедитесь, что все правильно. Также проверьте порядок сборки проекта (следующая вкладка в зависимостях).
источник
Эта ошибка возникает из-за наличия пробелов в месте копирования вашего репо. Например, мой проект скопирован в нижеприведенное место,
c://projects/My rest project
тогда вы можете увидеть белые пробелы там, если вы измените свой путь репо на ниже, он должен работатьc://projects/myrestproject
источник
У меня такая же проблема. Вы также можете проверить, в какую сторону указывает косая черта. Для меня сработало использование обратной косой черты вместо прямой. пример
Вместо того:
источник
У меня была команда пост-сборки, которая работала нормально до того, как я обновил VS 2017. Оказалось, что инструменты SDK обновились и находились по новому пути, поэтому он не смог найти инструмент, который я использовал для подписи своих сборок.
Это изменилось с этого ....
К этому...
Очень тонкое, но критическое изменение, поэтому проверьте свои пути после обновления, если вы видите эту ошибку.
источник
Еще одна вещь , чтобы следить за это двойные обратные косые, так как
xcopy
не переносит их в параметре ввода пути (но это действительно переносит их в выходной тракт ...).источник
Если какое-либо другое решение находится в режиме отладки, сначала остановите их все, а затем перезапустите визуальную студию. У меня это сработало.
источник
Это также может произойти, если целевая папка используется некоторыми другими процессами . Закройте все программы, которые могут использовать целевую папку, и попробуйте.
Вы можете использовать монитор ресурсов (инструмент Windows), чтобы проверить процессы, которые используют вашу целевую папку.
Это сработало для меня !.
источник