MSBuild ItemGroup,不包括.svn目录和文件

Kie*_*ton 40 .net msbuild continuous-integration

如何构造MSBuild ItemGroup以排除.svn目录和(递归)中的所有文件.我有:

<ItemGroup> 
     <LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*" Exclude=".svn" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

目前,但这并没有排除任何东西!

Kie*_*ton 65

感谢您的帮助,设法按如下方式对其进行排序:

<ItemGroup>
     <LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*" 
                   Exclude="$(LibrariesReleaseDir)\**\.svn\**" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

事实证明模式匹配基本上是在文件上运行的,所以你必须排除.svn目录(.svn\\**)下面的所有内容,以便MSBuild排除.svn目录本身.


abo*_*bss 12

所以问题是由于某种原因在msbuild中链接变量.以下对我有用,请注意我必须仅使用基于MSBuildProjectDirectory变量的相对路径.

<CreateItem Include="$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI\**\*.*"
            Exclude="$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI\**\.svn\**">
  <Output TaskParameter="Include" ItemName="WebFiles" />
</CreateItem>
Run Code Online (Sandbox Code Playgroud)

以下不起作用:

<PropertyGroup>
    <WebProjectDir>$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI</WebProjectDir>
</PropertyGroup>
<CreateItem Include="$(WebProjectDir)\**\*.*"
            Exclude="$(WebProjectDir)\**\.svn\**">
  <Output TaskParameter="Include" ItemName="WebFiles" />
</CreateItem>
Run Code Online (Sandbox Code Playgroud)

很奇怪!我刚刚在这个上花了3个小时.