How to: Selecione os arquivos de compilação

Quando você constrói um projeto que contém vários arquivos, você pode listar cada arquivo separadamente no arquivo de projeto ou você pode usar curingas para incluir todos os arquivos em um diretório ou um conjunto aninhado de diretórios.

Especificando entradas

Itens representam as entradas para uma compilação. Para obter mais informações sobre itens, consulte Itens do MSBuild.

Para incluir os arquivos para uma compilação, devem ser incluídos em uma lista de itens na MSBuild arquivo de projeto. Vários arquivos podem ser adicionados às listas de itens, incluindo os arquivos individualmente ou usando caracteres curinga para incluir vários arquivos ao mesmo tempo.

Para declarar os itens individualmente

  • Use o Include atributos semelhantes ao seguinte:

    <CSFile Include="form1.cs"/>

    – ou –

    <VBFile Include="form1.vb"/>

    ObservaçãoObservação

    Se os itens em um collectio de item não estiverem no mesmo diretório do arquivo de projeto, você deve especificar o caminho completo ou relativo ao item. Por exemplo: Include="..\..\form2.cs".

Para declarar vários itens

  • Use o Include atributos semelhantes ao seguinte:

    <CSFile Include="form1.cs;form2.cs"/>

    – ou –

    <VBFile Include="form1.vb;form2.vb"/>

Especificando entradas com curingas

Você também pode usar caracteres curinga recursivamente incluem todos os arquivos ou apenas os arquivos específicos de subdiretórios como entradas para uma compilação. Para obter mais informações sobre caracteres curinga, consulteItens do MSBuild

Os exemplos a seguir baseiam-se em um projeto que contém os arquivos de gráficos nos seguintes diretórios e subdiretórios, com o arquivo de projeto localizado no diretório do projeto:

Project\Images\BestJpgs

Project\Images\ImgJpgs

Project\Images\ImgJpgs\Img1

Para incluir todos os arquivos. jpg no diretório de imagens e subdiretórios

  • Use o seguinte Include atributo:

    Include="Images\\**\*.jpg"

Para incluir todos os arquivos. jpg, começando com "img"

  • Use o seguinte Include atributo:

    Include="Images\**\img*.jpg"

Para incluir todos os arquivos em diretórios com nomes que terminam em "jpgs"

  • Use um dos seguintes Include atributos:

    Include="Images\**\*jpgs\*.*"

    – ou –

    Include="Images\**\*jpgs\*"

Itens em passar a uma tarefa

Em um arquivo de projeto, você pode usar o @ notação de () em tarefas para especificar uma lista de todo o item como entrada para uma compilação. Se você lista todos os arquivos separadamente ou usa curingas, você pode usar essa notação.

Para usar arquivos de todos os Visual C# ou Visual Basic como entradas

  • Use o Include atributos semelhantes à seguinte:

    <CSC Sources="@(CSFile)">...</CSC>

    – ou –

    <VBC Sources="@(VBFile)">...</VBC>

ObservaçãoObservação

Você deve usar caracteres curinga com itens para especificar as entradas para uma compilação; não é possível especificar as entradas usando o Sources atributo na MSBuild tarefas, como Csc ou Vbc. O exemplo a seguir não é válido em um arquivo de projeto:

<CSC Sources="*.cs">...</CSC>

Exemplo

O exemplo de código a seguir mostra um projeto que inclui todos os arquivos de entrada separadamente.

<Project DefaultTargets="Compile"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003" >
    <PropertyGroup>
        <Builtdir>built</Builtdir>
    </PropertyGroup>

    <ItemGroup>
        <CSFile Include="Form1.cs"/>
        <CSFile Include="AssemblyInfo.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>

O exemplo de código a seguir usa um curinga para incluir todos os arquivos. cs.

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

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

    <ItemGroup>
        <CSFile Include="*.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>

Consulte também

Tarefas

How to: Excluir arquivos da compilação

Conceitos

Itens do MSBuild