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を使用してビルドを実行し、Items の値を確認します。次のように、ファイルのリストを出力するステップを追加することもできます。

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

上記の例を見ると、2 番目のスニペットは正しく、3 番目のスニペットは正しくありません (プロパティへの参照は @ ではなく $ を介して行われます)。

于 2010-03-11T15:05:22.690 に答える