Condividi tramite


Procedura: escludere file dalla compilazione

Nei file di progetto è possibile utilizzare caratteri jolly per includere come input di compilazione tutti i file di una directory o un insieme annidato di directory.Nella directory o in una delle directory dell'insieme annidato potrebbe tuttavia essere presente un file che si preferisce non includere come input di compilazione.In questo caso è possibile escludere esplicitamente il file o la directory dall'elenco degli input.Inoltre, se un progetto contiene un file da includere solo a determinate condizioni,queste possono essere dichiarate esplicitamente.

Esclusione di un file o di una directory dagli input di compilazione

Gli elenchi di elementi corrispondono ai file di input per una compilazione.Gli elementi da includere possono essere dichiarati separatamente o sotto forma di gruppo ricorrendo all'attributo Include.Ad esempio:

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

Se si utilizzano caratteri jolly per includere come input di compilazione tutti i file di una directory o un insieme annidato di directory, è possibile che si desideri escludere uno o più file della directory oppure una delle directory dell'insieme annidato.Per escludere un elemento dall'elenco di elementi, utilizzare l'attributo Exclude.

Per includere tutti i file con estensione cs o vb, a eccezione di Form2

  • Utilizzare uno degli attributi Include ed Exclude seguenti:

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

    - oppure -

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

Per includere tutti i file con estensione cs o vb, eccetto Form2 e Form3

  • Utilizzare uno degli attributi Include ed Exclude seguenti:

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

    - oppure -

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

Per includere tutti i file con estensione jpg presenti nelle sottodirectory della directory Images, a eccezione di quelli della directory Version2

  • Utilizzare gli attributi Include ed Exclude seguenti:

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

    [!NOTA]

    È necessario specificare il percorso di entrambi gli attributi.Se per specificare le posizioni dei file nell'attributo Include si ricorre a un percorso assoluto, è necessario utilizzare questo tipo di percorso anche nell'attributo Exclude. Se nell'attributo Include si ricorre a un percorso relativo, è necessario utilizzare questo tipo di percorso anche nell'attributo Exclude.

Utilizzo di condizioni per escludere un file o una directory dagli input di compilazione

Se sono presenti elementi che si desidera includere, ad esempio, in una build di debug, ma non in una build di rilascio, è possibile utilizzare l'attributo Condition per specificare le condizioni di inclusione.

Per includere il file Formula.vb solo nelle build di rilascio

  • Utilizzare un attributo Condition simile a quello riportato di seguito:

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

Esempio

Nell'esempio di codice riportato di seguito viene compilato un progetto con tutti i file CS nella directory tranne Form2.cs.

<Project DefaultTargets="Compile"
    xmlns="https://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>

Vedere anche

Attività

Procedura: selezionare i file da compilare

Concetti

Elementi MSBuild

Altre risorse

MSBuild