MSBuild排除语法不起作用

时间:2012-01-20 20:36:00

标签: msbuild

我在MSBuild中有一个测试文件来创建一个ZIP。我需要排除某些文件夹。我有以下工作。

<PropertyGroup>
  <TestZipPath>C:\path\to\my\folder\</TestZipPath>
  <ExcludeList>$(TestZipPath)\**\_svn\**;$(TestZipPath)\**\.svn\**;$(TestZipPath)\**\obj\**;$(TestZipPath)\**\*.config</ExcludeList>
</PropertyGroup>

<ItemGroup>
  <ZipFiles Include="$(TestZipPath)\**\*.*" Exclude="$(ExcludeList)"  />
</ItemGroup>

<Message Text="%(ZipFiles.FullPath)"/>

这对我来说似乎非常冗长。理想情况下,我希望ExcludeList的格式如下:

<ExcludeList>**\_svn\**;**\.svn\**;**\obj\**;**\*.config</ExcludeList>

但它似乎不起作用。为什么我需要在每个排除模式之前包含$(TestZipPath)? **不打算在路径的开头使用吗?有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

我弄明白了这个问题。问题是我试图包含与我正在执行的msbuild文件无关的文件。 MSBuild假定文件路径是相对于此位置的,并且无法更改它。因此,我的所有路径都必须是绝对的,不可能是相对的。

答案 1 :(得分:1)

尝试在每个包含模式之前添加“。\”。像这样:

 '.\**\obj\**'