MSBuild ItemGroup を構築して、.svn ディレクトリとその中のすべてのファイルを (再帰的に) 除外するにはどうすればよいですか? 私が持っている:
<ItemGroup>
<LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*" Exclude=".svn" />
</ItemGroup>
現時点では、これは何も除外しません!
MSBuild ItemGroup を構築して、.svn ディレクトリとその中のすべてのファイルを (再帰的に) 除外するにはどうすればよいですか? 私が持っている:
<ItemGroup>
<LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*" Exclude=".svn" />
</ItemGroup>
現時点では、これは何も除外しません!
ご協力ありがとうございます。次のように並べ替えることができました。
<ItemGroup>
<LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*"
Exclude="$(LibrariesReleaseDir)\**\.svn\**" />
</ItemGroup>
パターン マッチングは基本的にファイルに対して実行されるため、MSBuild がディレクトリ自体を除外するには、.svn
ディレクトリ ( ) の下のすべてを除外する必要があります。.svn\\**
.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>