我在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)? **不打算在路径的开头使用吗?有更好的方法吗?
答案 0 :(得分:4)
我弄明白了这个问题。问题是我试图包含与我正在执行的msbuild文件无关的文件。 MSBuild假定文件路径是相对于此位置的,并且无法更改它。因此,我的所有路径都必须是绝对的,不可能是相对的。
答案 1 :(得分:1)
尝试在每个包含模式之前添加“。\”。像这样:
'.\**\obj\**'