Копировать результаты сборки из нескольких проектов в одну папку
У меня есть решение Visual Studio 2013 с настраиваемыми типами проектов, предоставляемыми плагином. Эти проекты не поддерживают указание папки вывода сборки или событий после сборки. Мне нужно скопировать выходные данные сборки из выходного местоположения каждого проекта в один bin
папка такая, что их можно выгрузить в папку размещения в TFS. Как бы я написал пакетный скрипт или аналогичный, чтобы скопировать выходы из
\SolutionDir\Project1\Debug\Win32\*
\SolutionDir\Project2\Debug\Win32\*
...
в
\SolutionDir\bin\Debug\Win32\*
Принимая во внимание, что некоторые проекты зависят от других и, следовательно, одинаковы .dll
может присутствовать в нескольких местах. Неважно, что я храню. Я пробовал что-то вроде
for /f "tokens=*" %a in ('dir *.dll *.exe /b /s /a-d') do copy "%a" "bin" /y
Но это не сохраняет \Debug\Win32
структура папок
1 ответ
Мне удалось решить это с помощью пакетного сценария, который я назвал CopyBins.bat
, Это не особенно элегантно, но вот оно;
dir /b /s /ad | find "\%1\" > folders.txt
for /f "tokens=*" %%a in ('cat folders.txt') do xcopy /s /y "%%a" %1\
del folders.txt
Тогда я могу выполнить это, позвонив
CopyBins Debug
Имейте в виду, что я не могу просто казнить
for /f "tokens=*" %a in ('dir /b /s /ad | find "\Debug\"') do xcopy /s /y "%a" Debug\
Потому что я получаю ошибку
| was unexpected at this time.
Если у кого-то есть лучшее решение, я хотел бы услышать это...