Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net MSBuild ItemGroup,不包括中的.svn目录和文件_.net_Msbuild_Continuous Integration - Fatal编程技术网

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

.net MSBuild ItemGroup,不包括中的.svn目录和文件,.net,msbuild,continuous-integration,.net,Msbuild,Continuous Integration,如何构造MSBuild项目组以排除.svn目录和其中的所有文件(递归)。我有: <ItemGroup> <LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*" Exclude=".svn" /> </ItemGroup> 目前,但这并不排除任何情况 感谢您的帮助,我们将其分类如下: <ItemGroup> <LibraryFiles Include="$(Libr

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

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


目前,但这并不排除任何情况

感谢您的帮助,我们将其分类如下:

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


结果表明,模式匹配基本上是在文件上运行的,因此您必须排除MSBuild的
.svn
目录(
.svn\\**
)下的所有内容,以排除
.svn
目录本身。

这是一种更好的方法,真正是递归的。我似乎无法让您的解决方案深入到1级以上:

<LibraryFiles  
    Include="$(LibrariesReleaseDir)**\*.*"  
    Exclude="$(LibrariesReleaseDir)**\.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>

$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI

很奇怪!我花了大约3个小时来做这件事。

我在使用Include/Exclude方法时遇到了一些小问题,因此这里有一些对我有用的东西:



@Kieran Benton:感谢更新,我将提交一个connect.microsoft.com请求,以澄清MSDN文档。我注意到您还将排除值的前缀添加为“$(Libraries ReleaseDir)\**”(与OP中的值相比)。这很重要吗?如果文件名中没有点,那么这对.svn\entries文件也有效吗?
<ItemGroup>
    <MyFiles Include=".\PathToYourStuff\**" />
    <MyFiles Remove=".\PathToYourStuff\**\.svn\**" />
</ItemGroup>