Udostępnij za pośrednictwem


Jak: Wybierz pliki do kompilacji

Podczas kompilacja projekt , który zawiera kilka plików, możesz liście każdy plik oddzielnie w pliku projekt lub można użyć symboli wieloznacznych, aby uwzględnić wszystkie pliki w jednym katalogu lub zestawu zagnieżdżonego katalogów.

Określanie danych wejściowych

Elementy reprezentują dane wejściowe dla kompilacja.Aby uzyskać więcej informacji dotyczących elementów, zobacz Program MSBuild elementów.

Aby dołączyć pliki, aby kompilacja, muszą być uwzględnione na liście pozycja w MSBuildpliku projekt . Wiele plików, można dodać do listy elementów przez włącznie z plikami, indywidualnie lub przy użyciu symboli wieloznacznych, aby dołączyć wiele plików na raz.

Aby zadeklarować indywidualnie elementów

  • Użyj Include atrybuty podobne do następujących:

    <CSFile Include="form1.cs"/>

    – lub –

    <VBFile Include="form1.vb"/>

    [!UWAGA]

    Jeśli elementy w kolekcji elementów nie są w tym samym katalogu co plik projekt , należy określić pełną lub ścieżka względna do elementu.Na przykład: Include="..\..\form2.cs".

Aby zadeklarować wielu elementów

  • Użyj Include atrybuty podobne do następujących:

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

    – lub –

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

Określanie danych wejściowych z symboli wieloznacznych

Można również użyć symboli wieloznacznych, aby cyklicznie obejmują wszystkie pliki lub tylko określone pliki z podkatalogów jako nakłady dla kompilacja.Aby uzyskać więcej informacji na temat symboli wieloznacznych zobaczProgram MSBuild elementów

Następujące przykłady są oparte na projekt , który zawiera pliki graficzne w następujących katalogach i podkatalogach, z pliku projekt znajdującego się w katalogu projektu:

Project\Images\BestJpgs

Project\Images\ImgJpgs

Project\Images\ImgJpgs\Img1

Aby uwzględnić wszystkie pliki jpg w obrazach katalogu i podkatalogach

  • Użyj następujących Include atrybut:

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

Aby uwzględnić wszystkie pliki jpg, począwszy od "img"

  • Użyj następujących Include atrybut:

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

Aby uwzględnić wszystkie pliki w katalogach z nazwami kończącym się w "jpg"

  • Użyj jednej z następujących Include atrybuty:

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

    – lub –

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

Przekazywanie elementów do zadania

W pliku projekt , można użyć @ notacji zadania, aby określić listę cały element jako dane wejściowe dla kompilacja().Czy lista wszystkich plików, oddzielnie lub użyj symboli wieloznacznych można użyć tej notacji.

Aby używać wszystkich plików Visual C# lub Visual Basic jako danych wejściowych

  • Użyj Include atrybuty podobny do następującego:

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

    – lub –

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

[!UWAGA]

Należy używać symboli wieloznacznych z elementów do zmiennoprzecinkową nakładów na kompilacja; nie można określić dane wejściowe za pomocą Sources atrybut w MSBuild zadań, takich jak Csc lub Vbc. Poniższy przykład jest prawidłowy w pliku projekt :

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

Przykład

Poniższy przykład kodu pokazuje projekt , który zawiera wszystkie pliki wejściowe oddzielnie.

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

Poniższy przykład kodu użyto symbolu wieloznacznego, aby dołączyć wszystkie pliki 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>

Zobacz też

Zadania

Jak: wykluczanie plików z kompilacji

Koncepcje

Program MSBuild elementów