Немедленно остановите копирование, если один файл не был успешно скопирован - PullRequest
2 голосов
/ 06 декабря 2011

Представьте себе обычный Deploy Target, который копирует тысячи файлов в удаленную сетевую папку с помощью MSBuild Copy Task , я считаю довольно распространенным сценарием.Поэтому, когда папка недоступна или имеются некоторые проблемы с правами доступа - очевидно, Копировать задачу не сможет скопировать файлы, но все равно попытается скопировать каждый файл, я хочу предотвратить это, чтобы ускорить развертывание цели для этого случая и сообщитьFailed статус немедленно и не ждите 30-60 минут, пока он обрабатывает все файлы в очереди ...

Как принудительно MSBuild Копировать задачу немедленно остановить в случае, если файл не был скопировани не пытаетесь скопировать все остальные файлы?Если это невозможно с помощью задачи копирования, возможно, этого можно достичь с помощью других средств?

Ответы [ 2 ]

0 голосов
/ 08 декабря 2011

Не лучше ли использовать робокопию для копирования, у нее есть множество опций для подобных вещей. Смотрите задачу в пакете расширений: http://www.msbuildextensionpack.com/help/4.0.4.0/index.html

Свойство options задачи принимает ряд параметров: http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx

0 голосов
/ 07 декабря 2011

Вместо этого вы можете использовать Exec task . Как это:

<Exec Command="xcopy /s &#34;from with spaces&#34; $(WebDeployFolder)\$(WebDeployName)"/>
...