将多个项目的构建输出复制到同一文件夹

时间:2014-08-18 16:17:13

标签: workflow-foundation tfsbuild build-server

我有一个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 个答案:

答案 0 :(得分:0)

我设法在我称为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.

如果有人有更好的解决方案我想听听......