MSBuild排除语法无效

3

我在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个回答

4

我找出了问题所在。问题是我试图包含那些与正在执行的msbuild文件不相关的文件。MSBuild假定文件路径是相对于该位置的,并且没有提供更改的方法。因此,我的所有路径都必须是绝对路径,不能是相对路径。


1
尝试在每个包含模式之前添加“.\”。就像这样:
 '.\**\obj\**'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接