我如何可以构造一个MSBuild项组进行排除。svn目录和内的所有文件(递归).我已经得到了:

<ItemGroup> 
     <LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*" Exclude=".svn" />
</ItemGroup>

在那一刻,但这并不排除任何东西!

有帮助吗?

解决方案

感谢您的帮助,设法对它进行排序如下:

<ItemGroup>
     <LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*" 
                   Exclude="$(LibrariesReleaseDir)\**\.svn\**" />
</ItemGroup>

原来的模式匹配,基本上运行的文件,所以你必须排除一切下 .svn 目录(.svn\\**)为MSBuild排除 .svn 目录本身。

其他提示

所以问题是与链的变量,由于某些原因,在msbuild。以下为我工作,请注意,我们仅使用相对道路基础上MSBuildProjectDirectory变量。

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

以下不工作:

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

很奇怪!我只花了3个小时就这一个。

这是一个甚至更好的方式来做到这一点,真的。我似乎无法得到你的解决超过1级深:

<LibraryFiles  
    Include="$(LibrariesReleaseDir)**\*.*"  
    Exclude="$(LibrariesReleaseDir)**\.svn\**\*.*"/>

我遇到一些小故障使用包括/排除的方法,因此,这里的东西这就是为我工作,而不是:

<ItemGroup>
    <MyFiles Include=".\PathToYourStuff\**" />
    <MyFiles Remove=".\PathToYourStuff\**\.svn\**" />
</ItemGroup>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top