Копирование команды завершено с кодом 4 при сборке - перезапуск Visual Studio решает ее - PullRequest
145 голосов
/ 05 октября 2010

Время от времени, когда я строю свое решение здесь (с 7 проектами в нем), я получаю страшную ошибку «Копия команды завершена с кодом 4», в Visual Studio 2010 Premium ed.

Это из-за невозможности пройти событие после сборки.

Вот что временно решает проблему

  • Иногда: перезапуск Visual Studio, и я могу построить решение
  • Иногда: и перезапуск Visual Studio, и мой файловый менеджер (Q-Dir 4.37) решают его.

Вот как выглядит событие после сборки:

xcopy "$(SolutionDir)Solution Items\References\*.dll" "$(TargetDir)" /Y

Когда вы получаете копию команды, завершенную с кодом [insert value], это обычно происходит из-за следующего:

  • разрешения на чтение / запись
  • пропущенных файлов
  • неправильные каталоги

Однако - очевидно, что иногда, когда я строю решение, проблем нет.

К вашему сведению, я удалил ReSharper 5.1.1 две недели назад, и с тех пор Visual Studio выдала мне несколько ошибок (среди которых не было возможности отладки). Я переустанавливал Visual Studio, и с тех пор он работает лучше, но проблема все еще остается. Может ли это быть связано с тем, что где-то есть ReSharper?

Была ли у вас такая же проблема и вы решили ее? Или у вас есть какое-нибудь возможное решение?

Ответы [ 27 ]

2 голосов
/ 07 ноября 2014

У меня была такая же ошибка с xcopy в связи с Test Engine.Я использую VisualStudio Professional 2013. По умолчанию Test -> Test Settings -> Keep Test Execution Engine, кажется, является причиной моего кода ошибки 4 с xcopy.Выключение решило проблему.Кажется, что механизм исполнения продолжает удерживать некоторые .dll.

2 голосов
/ 24 октября 2011

Я получил эту ошибку, потому что файл был открыт в другом экземпляре.

Когда я закрыл файл и снова пересоздал решение, оно было успешно скопировано.

1 голос
/ 16 сентября 2016

Я не вижу здесь ничего, чтобы предположить, что это веб-приложение, но я сам столкнулся с этой проблемой - у меня есть две команды xcopy для события после сборки, и только одна из них завершилась неудачно. Что-то блокировало файл, и это была не Visual Studio (как я пытался перезапустить).

Единственная другая вещь, которая использовала бы созданную мной DLL, была IIS. И о чудо,

Простой iisreset помог мне.

1 голос
/ 06 апреля 2016

Что исправило для меня : найдите конкретное решение для проекта, который вы хотите, т.е. НЕ общий файл решения для всех проектов.

Попробуйте - я пробовал все остальноеупоминается здесь, но безрезультатно.

1 голос
/ 22 апреля 2013

У меня была такая же проблема. Однако у меня ничего не получалось. Я решил проблему, добавив

exit 0

к моему коду. Проблема заключалась в том, что во время копирования файлов иногда не удавалось найти последний файл, и «летучая мышь» возвращала ненулевое значение.

Надеюсь, это кому-нибудь поможет!

1 голос
/ 07 ноября 2014

Я получаю нечто подобное, используя xcopy с параметром / exclude.В моем случае я обнаружил, что редактирование события после сборки (что-то безобидное, например перевод строки после команды) и сохранение проекта приводят к возникновению ошибки.Повторное сохранение файла, указанного в параметре / exclude, заставляет его снова работать.

1 голос
/ 04 ноября 2014

Я столкнулся с той же проблемой. Я удалил события после сборки, и он начал работать. Иногда, когда мы добавляем некоторые компоненты SQL, могут также добавляться команды после сборки.

1 голос
/ 09 ноября 2011

У меня была такая же проблема.Простое «Чистое решение» в VS устранило ошибку, но это было временное решение.

1 голос
/ 21 ноября 2013

Если вы используете Windows 7 и более поздние версии, вы можете попробовать новую команду 'robocopy':

robocopy "$(SolutionDir)Solution Items\References\*.dll" "$(TargetDir)"

Более подробную информацию о robocopy можно найти здесь .

1 голос
/ 04 августа 2017

У меня была такая же проблема.Это вызвано наличием одного и того же флага дважды, например:

if $ (ConfigurationName) == Release (xcopy "$ (TargetDir) . " "$ (SolutionDir) Deployment \ $(ProjectName) \ "/ e / d / i / y / e)

Обратите внимание, что флаг" / e "появляется дважды.Удаление дубликата решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...