ビルドするファイルを選択する
複数のファイルを含むプロジェクトをビルドするときに、各ファイルを個別にプロジェクト ファイルにリストしたり、ワイルドカードを使用して、1 つのディレクトリまたは入れ子になった一連のディレクトリ内のすべてのファイルを含めたりすることができます。
入力を指定する
項目は、ビルドの入力を表します。 項目の詳細については、「MSBuild 項目」をご覧ください。
ビルドにファイルを含めるには、それらが MSBuild プロジェクト ファイルの項目一覧に含まれている必要があります。 複数のファイルを項目リストに追加するには、ファイルを個別に含めるか、ワイルドカードを使用して一度に複数のファイルを含めます。
項目を個別に宣言するには
次のような
Include
属性を使用します。<CSFile Include="form1.cs"/>
or
<VBFile Include="form1.vb"/>
Note
項目コレクション内の項目がプロジェクト ファイルと同じディレクトリにない場合は、その項目への完全パスまたは相対パスを指定する必要があります。 たとえば、
Include="..\..\form2.cs"
のように指定します。
複数の項目を宣言するには
次のような
Include
属性を使用します。<CSFile Include="form1.cs;form2.cs"/>
or
<VBFile Include="form1.vb;form2.vb"/>
ワイルドカードを使用して入力を指定する
ワイルドカードを使用して、すべてのファイルまたはサブディレクトリから特定のファイルのみを再帰的に含めることができます。 ワイルドカードの詳細については、「MSBuild 項目」をご覧ください。
次の例は、次のディレクトリとサブディレクトリ内のグラフィック ファイルを含むプロジェクトに基づいており、プロジェクト ファイルは Project ディレクトリに配置されています。
Project\Images\BestJpgs
Project\Images\ImgJpgs
Project\Images\ImgJpgs\Img1
Images ディレクトリとサブディレクトリ内のすべての .jpg ファイルを含めるには
次の
Include
属性を使用します。Include="Images\**\*.jpg"
img で始まるすべての .jpg ファイルを含めるには
次の
Include
属性を使用します。Include="Images\**\img*.jpg"
ディレクトリ内の jpg で終わる名前を持つすべてのファイルを含めるには
次のいずれかの
Include
属性を使用します。Include="Images\**\*jpgs\*.*"
or
Include="Images\**\*jpgs\*"
項目をタスクに渡す
プロジェクト ファイルでは、タスクで @() の表記を使用して、項目リスト全体をビルドの入力として指定できます。 この表記を使用して、すべてのファイルを個別にリストすることも、ワイルドカードを使用することもできます。
すべての Visual C# ファイルまたは Visual Basic ファイルを入力として使用するには
次のような
Include
属性を使用します。<CSC Sources="@(CSFile)">...</CSC>
or
<VBC Sources="@(VBFile)">...</VBC>
Note
ワイルドカードと項目を使用して、ビルドの入力を指定する必要があります。MSBuild タスクの Sources
属性 (Csc やVbc など) を使用して入力を指定することはできません。 次の例はプロジェクト ファイルでは無効です。
<CSC Sources="*.cs">...</CSC>
例 1
次のコード例では、すべての入力ファイルを個別に含むプロジェクトを示します。
<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>
例 2
次のコード例では、ワイルドカードを使用してすべての .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>
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示