方法: ビルドするファイルを選択するHow to: Select the Files to Build

複数のファイルを含むプロジェクトをビルドするときに、各ファイルを個別にプロジェクト ファイルにリストしたり、ワイルドカードを使用して、1 つのディレクトリまたは入れ子になった一連のディレクトリ内のすべてのファイルを含めたりすることができます。When you build a project that contains several files, you can list each file separately in the project file, or you can use wildcards to include all the files in one directory or a nested set of directories.

入力を指定するSpecifying Inputs

項目は、ビルドの入力を表します。Items represent the inputs for a build. 項目の詳細については、「MSBuild 項目」をご覧ください。For more information on items, see Items.

ビルドのファイルを含めるには、それらのファイルが MSBuildMSBuild プロジェクト ファイル内の項目リストに含まれている必要があります。To include files for a build, they must be included in an item list in the MSBuildMSBuild project file. 複数のファイルを項目リストに追加するには、ファイルを個別に含めるか、ワイルドカードを使用して一度に複数のファイルを含めます。Multiple files can be added to item lists by either including the files individually or using wildcards to include many files at once.

項目を個別に宣言するにはTo declare items individually

  • 次のような Include 属性を使用します。Use the Include attributes similar to following:

    <CSFile Include="form1.cs"/>

    • またはor -

      <VBFile Include="form1.vb"/>

    注意

    項目コレクション内の項目がプロジェクト ファイルと同じディレクトリにない場合は、その項目への完全パスまたは相対パスを指定する必要があります。If items in an item collection are not in the same directory as the project file, you must specify the full or relative path to the item. たとえば、Include="..\..\form2.cs" のように指定します。For example: Include="..\..\form2.cs".

複数の項目を宣言するにはTo declare multiple items

  • 次のような Include 属性を使用します。Use the Include attributes similar to following:

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

    • またはor -

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

ワイルドカードを使用して入力を指定するSpecifying Inputs with Wildcards

ワイルドカードを使用して、すべてのファイルまたはサブディレクトリから特定のファイルのみを再帰的に含めることができます。You can also use wildcards to recursively include all files or only specific files from subdirectories as inputs for a build. ワイルドカードの詳細については、「MSBuild 項目」をご覧ください。For more information about wildcards, see Items

次の例は、次のディレクトリとサブディレクトリ内のグラフィック ファイルを含むプロジェクトに基づいており、プロジェクト ファイルは Project ディレクトリに配置されています。The following examples are based on a project that contains graphics files in the following directories and subdirectories, with the project file located in the Project directory:

Project\Images\BestJpgsProject\Images\BestJpgs

Project\Images\ImgJpgsProject\Images\ImgJpgs

Project\Images\ImgJpgs\Img1Project\Images\ImgJpgs\Img1

Images ディレクトリとサブディレクトリ内のすべての .jpg ファイルを含めるにはTo include all .jpg files in the Images directory and subdirectories

  • 次の Include 属性を使用します。Use the following Include attribute:

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

"img" で始まるすべての .jpg ファイルを含めるにはTo include all .jpg files starting with "img"

  • 次の Include 属性を使用します。Use the following Include attribute:

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

ディレクトリ内の "jpg" で終わる名前を持つすべてのファイルを含めるにはTo include all files in directories with names ending in "jpgs"

  • 次のいずれかの Include 属性を使用します。Use one of the following Include attributes:

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

    • またはor -

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

項目をタスクに渡すPassing Items to a Task

プロジェクト ファイルでは、タスクで @() の表記を使用して、項目リスト全体をビルドの入力として指定できます。In a project file, you can use the @() notation in tasks to specify an entire item list as the input for a build. この表記を使用して、すべてのファイルを個別にリストすることも、ワイルドカードを使用することもできます。You can use this notation whether you list all files separately or use wildcards.

すべての Visual C# ファイルまたは Visual Basic ファイルを入力として使用するにはTo use all Visual C# or Visual Basic files as inputs

  • 次のような Include 属性を使用します。Use the Include attributes similar to the following:

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

    • またはor -

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

注意

ワイルドカードと項目を使用して、ビルドの入力を指定する必要があります。CscVbc などの MSBuildMSBuild タスクでは、Sources 属性を使用して入力を指定することはできません。You must use wildcards with items to specifiy the inputs for a build; you cannot specify the inputs using the Sources attribute in MSBuildMSBuild tasks such as Csc or Vbc. 次の例はプロジェクト ファイルでは無効です。The following example is not valid in a project file:

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

Example

次のコード例では、すべての入力ファイルを個別に含むプロジェクトを示します。The following code example shows a project that includes all of the input files separately.

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

Example

次のコード例では、ワイルドカードを使用してすべての .cs ファイルを含めます。The following code example uses a wildcard to include all the .cs files.

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

参照See Also

方法: ビルドからファイルを除外する How to: Exclude Files from the Build
項目Items