我有一个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,但我真的不明白,所以我不知道如何应用它。
答案 0 :(得分:1)
您是否尝试覆盖输出路径参数? 例如,如果您在每个解决方案上调用msbuild
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe $(SolutionName) /p:OutputPath="%CD%\Build"
这将重定向您的项目输出,无需配置处理。 只需查看\ Build为您的输出(其内容取决于您的项目类型)