2012-01-20 8 views
3

MSBuildにZIPを作成するためのテストファイルがあります。私は特定のフォルダを除外する必要があります。私は以下の作業をしています。MSBuildで構文が機能しない

<PropertyGroup> 
    <TestZipPath>C:\path\to\my\folder\</TestZipPath> 
    <ExcludeList>$(TestZipPath)\**\_svn\**;$(TestZipPath)\**\.svn\**;$(TestZipPath)\**\obj\**;$(TestZipPath)\**\*.config</ExcludeList> 
</PropertyGroup> 

<ItemGroup> 
    <ZipFiles Include="$(TestZipPath)\**\*.*" Exclude="$(ExcludeList)" /> 
</ItemGroup> 

<Message Text="%(ZipFiles.FullPath)"/> 

これは私にとっては冗長であるようです。理想的には、ExcludeListを次のようにフォーマットしたいと考えています。

<ExcludeList>**\_svn\**;**\.svn\**;**\obj\**;**\*.config</ExcludeList> 

しかし、うまくいかないようです。すべての除外パターンの前に$(TestZipPath)を含める必要があるのはなぜですか? **はパスの始めに使用されることを意図していないのですか?これを行うより良い方法はありますか?

答えて

4

私は問題を把握しました。問題は、私が実行しているmsbuildファイルとは関係のないファイルをインクルードしようとしていることです。 MSBuildはファイルパスがこの場所に関連していると想定しており、これを変更する方法はありません。このため、私のパスはすべて絶対的でなければならず、相対的なものでもありません。

1

すべてのインクルードパターンの前に '。\'を追加してください。このように:

'.\**\obj\**' 
関連する問題