MSBuild项组进行,不包括.svn目录和文件
-
09-06-2019 - |
题
我如何可以构造一个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>
不隶属于 StackOverflow