【问题标题】:MSBuild copy task for all solution outputs without project\bin\configuration没有 project\bin\configuration 的所有解决方案输出的 MSBuild 复制任务
【发布时间】:2014-10-31 17:42:09
【问题描述】:

我有一个 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,但我不是很明白,所以我不知道如何在这里应用它。

【问题讨论】:

    标签: msbuild


    【解决方案1】:

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

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

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

    【讨论】:

    • 这在命令行上一次只适用于一个解决方案,谢谢!但是..我似乎无法让它在 MSBuild 任务中工作?这样做似乎并没有什么不同: 跨度>
    • 哦,我的错... DestFolder 以 .\ 开头,当然评估为解决方案目录...我现在应该可以自己解决剩下的问题了 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 2022-06-23
    • 2023-03-17
    相关资源
    最近更新 更多