0

我试图从我的 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 文件)。

4

1 回答 1

0

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

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

看看你上面的例子,第二个片段是正确的,第三个不是(对属性的引用是通过 $ 而不是通过 @)

于 2010-03-11T15:05:22.690 回答