我在MSBuild中有一个测试文件来创建ZIP。我需要排除某些文件夹。我有以下工作。
<PropertyGroup>
<TestZipPath>C:pathtomyfolder</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)?**是否不用于路径的开头?有更好的方法吗?
我解决了这个问题。问题是,我试图包含与我正在执行的msbuild文件无关的文件。MSBuild假定文件路径是相对于此位置的,并且不提供任何更改方法。正因为如此,我的所有道路都必须是绝对的,不能是相对的。
尝试添加'.\'在每个包含模式之前。像这样:
'.**obj**'