MSBuild将文件复制到没有文件层次结构的单个文件夹

时间:2017-01-25 22:31:59

标签: tfs msbuild tfs2017

在TFS 2017本地站点中,我已经整合了一个TFS构建,它可以生成多个数据库构建和SSIS包构建。它产生所需的dacpac和ispac文件。但是,在创建时,这些文件将根据特定项目结构放置在层次结构中。它看起来像这样:

Database1
    \bin
        \Release
            \database1.dacpac
Database2
    \bin
        \Release
            \database2.dacpac
ssisPackage
    \bin
        \Development
            \ssispackage.ispac

我想将所有这些文件(* .dacpac和* .ispac)复制到一个文件中 将它们推送给我的团队时,目录(展平)。但是,“复制文件”任务正在复制它们并保留文件夹结构。

"复制文件的内容块"任务是:

**\bin\$(BuildConfiguration)\**\*.dacpac
**\bin\Development\*.ispac

目标文件夹

$(build.artifactstagingdirectory)

有没有办法将此文件移动到没有文件夹层次结构的目标文件夹,从而导致:

OutputFolder
    \database1.dacpac
    \database2.dacpac
    \ssispackage.ispac

感谢您的建议

1 个答案:

答案 0 :(得分:0)

请参阅以下步骤以达到您的要求:

  1. 使用下面的代码创建一个bat文件并添加到项目中,然后检查源代码控制(%1表示第一个参数,%2表示第二个参数)
  2. 代码:

    pushd %1
           for /r %%a in (*.pdb) do (
             copy "%%a" %2
           )
           popd
    
    1. 将命令行构建步骤添加到构建定义
    2. enter image description here

      注意:此代码用于复制pdb文件,您需要根据要求对其进行修改。