Výběr souborů pro sestavení

Když vytvoříte projekt, který obsahuje několik souborů, můžete každý soubor vypsat zvlášť v souboru projektu, nebo můžete použít zástupné cardy k zahrnutí všech souborů do jednoho adresáře nebo do vnořené sady adresářů.

Zadání vstupů

Položky představují vstupy sestavení. Další informace o položkách najdete v tématu Položky.

Chcete-li zahrnout soubory pro sestavení, musí být zahrnuty do seznamu položek v souboru projektu MSBuild. Do seznamů položek lze přidat více souborů tak, že do seznamů položek zahrnete soubory jednotlivě nebo pomocí zástupných znaků, které budou obsahovat mnoho souborů najednou.

Deklarace položek jednotlivě

  • Include Použijte atributy podobné následujícímu:

    <CSFile Include="form1.cs"/>

    or

    <VBFile Include="form1.vb"/>

    Poznámka:

    Pokud položky v kolekci položek nejsou ve stejném adresáři jako soubor projektu, je nutné zadat úplnou nebo relativní cestu k položce. Například: Include="..\..\form2.cs".

Deklarace více položek

  • Include Použijte atributy podobné následujícímu:

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

    nebo

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

Zadání vstupů pomocí zástupných znaků

Zástupné zóny můžete použít také k rekurzivnímu zahrnutí všech souborů nebo pouze konkrétních souborů z podadresářů jako vstupů sestavení. Další informace o zástupných

Následující příklady jsou založené na projektu, který obsahuje grafické soubory v následujících adresářích a podadresářích s projektovým souborem umístěným v adresáři Projektu :

Project\Images\BestJpgs

Project\Images\ImgJpgs

Project\Images\ImgJpgs\Img1

Zahrnutí všech souborů .jpg do adresáře obrázků a podadresářů

  • Použijte následující Include atribut:

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

Zahrnutí všech souborů .jpg počínaje img

  • Použijte následující Include atribut:

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

Zahrnutí všech souborů do adresářů s názvy končícími na jpgs

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

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

    nebo

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

Předání položek úkolu

V souboru projektu můžete pomocí zápisu @() v úkolech zadat jako vstup pro sestavení celý seznam položek. Tento zápis můžete použít bez ohledu na to, jestli vypíšete všechny soubory samostatně, nebo použijete zástupné znamény.

Použití všech souborů Visual C# nebo Visual Basic jako vstupů

  • Include Použijte atributy podobné následujícímu:

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

    or

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

Poznámka:

K zadání vstupů pro sestavení je nutné použít zástupné zóny s položkami; Nelze zadat vstupy pomocí atributu Sources v úlohách MSBuild, jako je Csc nebo Vbc. Následující příklad není platný v souboru projektu:

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

Příklad 1

Následující příklad kódu ukazuje projekt, který obsahuje všechny vstupní soubory samostatně.

<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>

Příklad 2

Následující příklad kódu používá zástupný znak k zahrnutí všech souborů .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>