Скрипт после сборки выдает ошибку в VIsual Studio 2010 - PullRequest
0 голосов
/ 01 февраля 2012

Я видел несколько потоков с одной и той же проблемой, но ни одно из решений, похоже, не работает для меня, поэтому я пробую это здесь.

Мне нужен сценарий после сборки в VS2010, который перемещает.lib файл в directroy (который, возможно, еще не существует; если это так, создайте его).

Я использую его, который возвращает error code 2:

xcopy /y "$(TargetDir)$(ProjectName).lib" "$(SolutionDir)lib\$(ProjectName).lib"

Также попытался,который возвращает error code 1: (в чем разница?)

copy /y "$(TargetDir)$(ProjectName).lib" "$(SolutionDir)lib\$(ProjectName).lib"

Наиболее распространенные проблемы, с которыми люди сталкиваются, это отсутствие кавычек на путях, но у меня это есть.

ПочемуРазве это не работает?

Ответы [ 2 ]

3 голосов
/ 01 февраля 2012

Это должно быть ближе:

if not exist "$(SolutionDir)lib" md "$(SolutionDir)lib"
xcopy /y /d "$(TargetPath)" "$(SolutionDir)lib"
1 голос
/ 01 февраля 2012

После быстрой проверки в командной строке, что происходит с copy, происходит сбой, потому что каталог не существует. Что происходит с xcopy, так это то, что происходит сбой, когда он запрашивает, является ли цель файлом или каталогом, когда он обнаруживает, что каталог не существует. /-Y может быть установлено в переменной среды COPYCMD, или целевой путь может вводить в заблуждение, вызывая запрос о том, является ли цель каталогом или файлом, который не подавлен флагом /Y для перезаписи.

Пример: xcopy /Y "C:\test.txt" "missingdirectory\test5.txt"

Очевидно, что самое простое решение - проверить, существует ли каталог, и создать его, если он отсутствует, перед выполнением копирования в сценарии после сборки.

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