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个小时.