【问题标题】:msbuild copy entire folder with same folder namemsbuild 复制具有相同文件夹名称的整个文件夹
【发布时间】:2016-10-27 18:05:18
【问题描述】:

我正在尝试复制位于 TFS 中不同位置的整个文件夹。

我有以下:

<Target Name="BuildControles">

    <ItemGroup>
      <Controles Include="$(BUILD_SOURCESDIRECTORY)\ABC\FOLDERB\*.*" />
      <Controles Include="$(BUILD_SOURCESDIRECTORY)\joe\bloe\FOLDERA\*.*" />
    </ItemGroup>

    <Copy SourceFiles="@(Controles)" DestinationFiles="@(Controles->'$(OutDir)metadata\[FOLDERA OR FOLDER B]\%(Filename)%(Extension)')" />
</Target>

我需要将 ItemGroup 中指定的那些文件夹(FOLDERA 和 FOLDERB)复制到位于“元数据”文件夹下的特定路径中,这样我最后就有了:

..元数据\FOLDERA..

..元数据\FOLDERB..

用 %(Directory)、%(RecursiveDir) 或 %(RelativeDir) 尝试了许多不同的方法,但找不到方法。

请温柔,我刚开始使用 MsBuild :)

【问题讨论】:

    标签: tfs msbuild msbuild-4.0


    【解决方案1】:

    在 msbuild 中,您可以将元数据添加到项目,这些元数据基本上是附加到项目的属性,然后您可以使用 %() 语法引用这些属性。这似乎适合您在这里想要的:

    <ItemGroup>
      <Controles Include="$(BUILD_SOURCESDIRECTORY)\ABC\FOLDERB\*.*" >
        <Dest>FOLDERB</Dest>
      </Controles>
      <Controles Include="$(BUILD_SOURCESDIRECTORY)\joe\bloe\FOLDERA\*.*">
        <Dest>FOLDERA</Dest>
      </Controles>
    </ItemGroup>
    
    <Copy SourceFiles="@(Controles)"
          DestinationFiles="@(Controles->'$(OutDir)metadata\%(Dest)\%(Filename)%(Extension)')" />
    

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      • 2023-01-11
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多