Vyloučení souborů ze sestavení

V souboru projektu můžete pomocí zástupných znaků zahrnout všechny soubory v jednom adresáři nebo vnořenou sadu adresářů jako vstupy pro sestavení. V adresáři nebo v jednom adresáři však může existovat jeden soubor v vnořené sadě adresářů, které nechcete zahrnout jako vstup pro sestavení. Tento soubor nebo adresář můžete explicitně vyloučit ze seznamu vstupů. V projektu může být také soubor, který chcete zahrnout pouze za určitých podmínek. Podmínky, za kterých je soubor součástí sestavení, můžete explicitně deklarovat.

Vyloučení souboru nebo adresáře ze vstupů sestavení

Seznamy položek jsou vstupní soubory sestavení. Položky, které chcete zahrnout, jsou deklarovány samostatně nebo jako skupina pomocí atributu Include . Příklad:

<CSFile Include="Form1.cs"/>
<CSFile Include ="File1.cs;File2.cs"/>
<CSFile Include="*.cs"/>
<JPGFile Include="Images\**\*.jpg"/>

Pokud jste pomocí zástupných znaků zahrnuli všechny soubory v jednom adresáři nebo vnořenou sadu adresářů jako vstupy pro sestavení, může existovat jeden nebo více souborů v adresáři nebo jednom adresáři v vnořené sadě adresářů, které nechcete zahrnout. Chcete-li vyloučit položku ze seznamu položek, použijte Exclude atribut.

Zahrnutí všech souborů .cs nebo .vb s výjimkou form2

  • Použijte jeden z následujících Include atributů Exclude :

    <CSFile Include="*.cs" Exclude="Form2.cs"/>
    

    nebo

    <VBFile Include="*.vb" Exclude="Form2.vb"/>
    

Zahrnutí všech souborů .cs nebo .vb s výjimkou formulářů Form2 a Form3

  • Použijte jeden z následujících Include atributů Exclude :

    <CSFile Include="*.cs" Exclude="Form2.cs;Form3.cs"/>
    

    nebo

    <VBFile Include="*.vb" Exclude="Form2.vb;Form3.vb"/>
    

Zahrnutí všech souborů .jpg do podadresářů adresáře Images s výjimkou souborů v adresáři Verze2

  • Použijte následující Include a Exclude atributy:

    <JPGFile
        Include="Images\**\*.jpg"
        Exclude = "Images\**\Version2\*.jpg"/>
    

    Poznámka:

    Musíte zadat cestu pro oba atributy. Pokud použijete absolutní cestu k určení umístění souborů v atributu Include , musíte také použít absolutní cestu v atributu Exclude . Pokud v atributu Include použijete relativní cestu, musíte také použít relativní cestu v atributu Exclude .

Vyloučení souboru nebo adresáře ze vstupů sestavení pomocí podmínek

Pokud existují položky, které chcete zahrnout, například do sestavení Ladění, ale ne sestavení vydané verze, můžete pomocí Condition atributu určit podmínky, za kterých se má položka zahrnout.

Zahrnutí souboru Formula.vb pouze do buildů vydaných verzí

  • Condition Použijte atribut podobný následujícímu:

    <Compile
        Include="Formula.vb"
        Condition=" '$(Configuration)' == 'Release' " />
    

Příklad

Následující příklad kódu sestaví projekt se všemi soubory .cs v adresáři s výjimkou Form2.cs.

<Project DefaultTargets="Compile"
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >

    <PropertyGroup>
        <builtdir>built</builtdir>
    </PropertyGroup>

    <ItemGroup>
        <CSFile Include="*.cs" Exclude="Form2.cs"/>

        <Reference Include="System.dll"/>
        <Reference Include="System.Data.dll"/>
        <Reference Include="System.Drawing.dll"/>
        <Reference Include="System.Windows.Forms.dll"/>
        <Reference Include="System.XML.dll"/>
    </ItemGroup>

    <Target Name="PreBuild">
        <Exec Command="if not exist $(builtdir) md $(builtdir)"/>
    </Target>

    <Target Name="Compile" DependsOnTargets="PreBuild">
        <Csc Sources="@(CSFile)"
            References="@(Reference)"
            OutputAssembly="$(builtdir)\$(MSBuildProjectName).exe"
            TargetType="exe" />
    </Target>
</Project>