没有project\bin\configuration的所有解决方案输出的MSBuild复制任务

没有project\bin\configuration的所有解决方案输出的MSBuild复制任务,msbuild,Msbuild,我有一个MSBuild脚本,可以在我的存储库中构建所有解决方案,但现在我需要一种将所有输出复制到构建目录的方法。我试图在构建任务中使用Output参数来知道要复制哪些文件,但是RecursiveDir不能与该参数一起使用:(您也可以在这里看到我的构建脚本)。无论如何,我有这个文件夹结构: Repository | +- Solution1 | | | +- ProjectA | | | | | +- bin | | | | | +- Rel

我有一个MSBuild脚本,可以在我的存储库中构建所有解决方案,但现在我需要一种将所有输出复制到构建目录的方法。我试图在构建任务中使用Output参数来知道要复制哪些文件,但是RecursiveDir不能与该参数一起使用:(您也可以在这里看到我的构建脚本)。无论如何,我有这个文件夹结构:

Repository
|
+- Solution1
|   |
|   +- ProjectA
|   |   |
|   |   +- bin
|   |       |
|   |       +- Release
|   |
|   +- ProjectB
|       |
|       +- bin
|           |
|           +- Release
|
+- Solution2
|   |
|   +- ProjectA
|       |
|       +- bin
|           |
|           +- x86
|               |
|               +-Release
|                  |
|                  +- images
|
...etc
Build
|
+- Solution1
|    
+- Solution2
|    |
|    +- images
|
...etc
基本上,我只想将每个发行版文件夹的内容(包括子文件夹结构和内容)复制到以下结构中:

Repository
|
+- Solution1
|   |
|   +- ProjectA
|   |   |
|   |   +- bin
|   |       |
|   |       +- Release
|   |
|   +- ProjectB
|       |
|       +- bin
|           |
|           +- Release
|
+- Solution2
|   |
|   +- ProjectA
|       |
|       +- bin
|           |
|           +- x86
|               |
|               +-Release
|                  |
|                  +- images
|
...etc
Build
|
+- Solution1
|    
+- Solution2
|    |
|    +- images
|
...etc
也就是说,我想剥离路径的
Project\bin\platform\configuration
部分。我不想手动包含每个项目,因为新项目经常会弹出,不必每次都更新构建脚本就好了。看起来很简单,但我想不出来


我已经看到了,但我并不真正理解它,所以我不知道如何在这里应用它。

您是否尝试过覆盖输出路径参数? 例如,如果对每个解决方案调用msbuild

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe $(SolutionName) /p:OutputPath="%CD%\Build"
这将重定向项目的输出,而无需处理任何配置。
只需在\Build中查找您的输出(其内容取决于您的项目类型)

这可以在命令行中一次为单个解决方案工作,谢谢!但是我似乎无法在MSBuild任务中使用它?这样做似乎没有什么不同:哦,我的坏。。。DestFolder以开始。\n这当然会计算到解决方案目录。。。我现在应该可以自己解决剩下的问题了:)