在MSBuild中重用排除模式

问题描述

| 我有一个MSBuild脚本,可在其中创建如下所示的源代码文件列表:
<ItemGroup>
    <ZipSourceFiles Include=\"Project1\\**\\*.*\" Exclude=\"**\\bin\\**;**\\obj\\**;**\\.svn\\**\" />
    <ZipSourceFiles Include=\"Project2\\**\\*.*\" Exclude=\"**\\bin\\**;**\\obj\\**;**\\.svn\\**\" />
    <ZipSourceFiles Include=\"Project3\\**\\*.*\" Exclude=\"**\\bin\\**;**\\obj\\**;**\\.svn\\**\" />
    <ZipSourceFiles Include=\"Project4\\**\\*.*\" Exclude=\"**\\bin\\**;**\\obj\\**;**\\.svn\\**\" />
    <ZipSourceFiles Include=\"MyApp.sln\" />
</ItemGroup>
这可行,但是我不想每次都剪切和粘贴相同的排除模式,而是声明一次并重用它。但是,我尝试将排除模式放入ItemList或将整个模式放入Property的尝试都失败了。 msbuild的正确语法是什么?     

解决方法

尝试这个:
<PropertyGroup>
    <ExcludePattern>**\\bin\\**;**\\obj\\**;**\\.svn\\**</ExcludePattern>
</PropertyGroup>    
<ItemGroup>
    <ZipSourceFiles Include=\"Project1\\**\\*.*\" Exclude=\"$(ExcludePattern)\" />
    <ZipSourceFiles Include=\"Project2\\**\\*.*\" Exclude=\"$(ExcludePattern)\" />
    <ZipSourceFiles Include=\"Project3\\**\\*.*\" Exclude=\"$(ExcludePattern)\" />
    <ZipSourceFiles Include=\"Project4\\**\\*.*\" Exclude=\"$(ExcludePattern)\" />
    <ZipSourceFiles Include=\"MyApp.sln\" />
</ItemGroup>