Selecionar os arquivos a serem compilados

Quando você compila um projeto que contém vários arquivos, é possível listar cada arquivo separadamente no arquivo de projeto ou usar caracteres curinga para incluir todos os arquivos em um diretório ou um conjunto aninhado de diretórios.

Especificar entradas

Os itens representam as entradas para um build. Para obter mais informações sobre os itens, consulte Itens.

Para incluir arquivos para um build, eles devem ser incluídos em uma lista de itens no arquivo de projeto do MSBuild. Vários arquivos podem ser adicionados a listas de itens incluindo os arquivos individualmente ou usando caracteres curinga para incluir vários arquivos ao mesmo tempo.

Para declarar itens individualmente

  • Use os atributos Include semelhantes ao seguinte:

    <CSFile Include="form1.cs"/>

    ou

    <VBFile Include="form1.vb"/>

    Observação

    Se os itens em uma coleção de itens não estiverem no mesmo diretório que o arquivo de projeto, será necessário especificar o caminho completo ou relativo para o item. Por exemplo: Include="..\..\form2.cs".

Para declarar vários itens

  • Use os atributos Include semelhantes ao seguinte:

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

    ou

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

Especificar entradas com curingas

Você também pode usar caracteres curinga para incluir recursivamente todos os arquivos ou apenas arquivos específicos de subdiretórios como entradas para um build. Para obter mais informações sobre caracteres curinga, consulte Itens

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

Project\Images\BestJpgs

Project\Images\ImgJpgs

Project\Images\ImgJpgs\Img1

Para incluir todos os arquivos .jpg no diretório Images e nos subdiretórios

  • Use o seguinte atributo Include:

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

Para incluir todos os arquivos .jpg que começam com img

  • Use o seguinte atributo Include:

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

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

  • Use um dos seguintes atributos Include:

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

    ou

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

Passar itens para uma tarefa

Em um arquivo de projeto, você pode usar a notação @() em tarefas para especificar uma lista completa de itens como a entrada para um build. Você pode usar essa notação se listar todos os arquivos separadamente ou usar caracteres curinga.

Para usar todos os arquivos do Visual c# ou Visual Basic como entradas

  • Use os atributos Include semelhantes ao seguinte:

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

    ou

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

Observação

Use curingas com itens para especificar as entradas para um build; não é possível especificar as entradas usando o atributo Sources em tarefas do MSBuild como Csc ou Vbc. O exemplo a seguir não é válido em um arquivo de projeto:

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

Exemplo 1

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

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

Exemplo 2

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

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