在TFS Build中排除多个文件

时间:2010-01-20 00:23:42

标签: tfs2008 tfsbuild build-definition

我正在尝试从TFS 2008构建定义中的自定义部署步骤中排除一系列文件。我想要包括除P0或P1之外的所有文件。以下是我的一些尝试......

<ItemGroup>
  <FilesToCopy Include="$(BinariesRoot)\Debug\*.*" Exclude="$(BinariesRoot)\Debug\P0*.*;$(BinariesRoot)\Debug\P1*.*" />
</ItemGroup>

<PropertyGroup>
  <FilesToExclude>$(BinariesRoot)\Debug\P0*.*;$(BinariesRoot)\Debug\P1*.*</FilesToExclude>
</PropertyGroup>
<ItemGroup>
  <FilesToCopy Include="$(BinariesRoot)\Debug\*.*" Exclude="$(FilesToExclude)" />
</ItemGroup>

<PropertyGroup>
  <FilesToExclude>$(BinariesRoot)\Debug\P0*.*;$(BinariesRoot)\Debug\P1*.*</FilesToExclude>
</PropertyGroup>
<ItemGroup>
  <FilesToCopy Include="$(BinariesRoot)\Debug\*.*" Exclude="@(FilesToExclude)" />
</ItemGroup>

当我使用这个来复制文件时......

<Copy SourceFiles="@(FilesToCopy)" DestinationFolder="T:\Deployment\" />

...它总是复制所有文件(即不排除P0和P1文件)。

1 个答案:

答案 0 :(得分:0)

使用诊断输出MSBuild ... /clp:v=diag运行您的构建,并查看您的项目的值。您还可以简单地添加一个步骤来输出文件列表,如下所示:

<Message Text="SrcFiles: @(FilesToCopy)" />

查看上面的示例,第二个片段是正确的,第三个片段不正确(对属性的引用是通过$ not via @完成的)