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

时间:2014-10-31 09:28:48

标签: msbuild

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

Repository
|
+- Solution1
|   |
|   +- ProjectA
|   |   |
|   |   +- bin
|   |       |
|   |       +- Release
|   |
|   +- ProjectB
|       |
|       +- bin
|           |
|           +- Release
|
+- Solution2
|   |
|   +- ProjectA
|       |
|       +- bin
|           |
|           +- x86
|               |
|               +-Release
|                  |
|                  +- images
|
...etc

基本上,我只想将每个Release文件夹的内容(包括子文件夹结构和内容)复制到以下结构中:

Build
|
+- Solution1
|    
+- Solution2
|    |
|    +- images
|
...etc

即。我想剥离路径的Project\bin\platform\configuration部分。我不想手动包含每个项目,因为每个项目都会经常弹出新项目,并且不必每次都更新构建脚本。看起来很简单,但我无法弄清楚......

我见过MsBuild Copy output and remove part of path,但我真的不明白,所以我不知道如何应用它。

1 个答案:

答案 0 :(得分:1)

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

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe $(SolutionName) /p:OutputPath="%CD%\Build"

这将重定向您的项目输出,无需配置处理。 只需查看\ Build为您的输出(其内容取决于您的项目类型)