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

プロジェクト ファイルでは、ワイルドカードを使用して、1 つのディレクトリ内のすべてのファイル、または入れ子にされたディレクトリのセットをビルドの入力として使用することができます。In a project file you can use wildcards to include all the files in one directory or a nested set of directories as inputs for a build. しかし、ディレクトリ内の 1 つのファイル、または入れ子にされたディレクトリのセット内の 1 つのディレクトリをビルドの入力に含めたくない場合もあります。However, there might be one file in the directory or one directory in a nested set of directories that you do not want to include as input for a build. そのファイルまたはディレクトリは、入力の一覧から明示的に除外できます。You can explicitly exclude that file or directory from the list of inputs. また、特定の条件のもとでのみ含めることを望むファイルがプロジェクトに存在することもあります。There may also be a file in a project that you only want to include under certain conditions. ファイルをビルドに含める条件を明示的に宣言できます。You can explicitly declare the conditions under which a file is included in a build.

ビルドの入力からファイルまたはディレクトリを除外するExcluding a File or Directory from the Inputs for a Build

項目リストは、ビルドの入力ファイルです。Item lists are the input files for a build. Include 属性を使用して、含める項目を個別にまたはグループとして宣言します。The items that you want to include are declared either separately or as a group using the Include attribute. 例:For example:

<CSFile Include="Form1.cs"/>  
<CSFile Include ="File1.cs;File2.cs"/>  
<CSFile Include="*.cs"/>  
<JPGFile Include="Images\**\*.jpg"/>  

ビルドの入力として 1 つのディレクトリのすべてのファイルまたは入れ子にされたディレクトリのセットを含めるためにワイルドカードを使用した場合に、ディレクトリ内の 1 つ以上のファイル、または入れ子にされたディレクトリのセット内の 1 つのディレクトリを含めたくないと思う可能性があります。If you have used wildcards to include all the files in one directory or a nested set of directories as inputs for a build, there might be one or more files in the directory or one directory in the a nested set of directories that you do not want to include. 項目リストから項目を除外するには、Exclude 属性を使用します。To exclude an item from the item list, use the Exclude attribute.

Form2 を除くすべての .cs ファイルまたは .vb ファイルを含める場合To include all .cs or .vb files except Form2

  • 次の Include および Exclude 属性のうち、いずれかを使用します。Use one of the following Include and Exclude attributes:

    <CSFile Include="*.cs" Exclude="Form2.cs"/>  
    
    • またはor -
    <VBFile Include="*.vb" Exclude="Form2.vb"/>  
    

Form2 と Form3 を除くすべての .cs ファイルまたは .vb ファイルを含める場合To include all .cs or .vb files except Form2 and Form3

  • 次の Include および Exclude 属性のうち、いずれかを使用します。Use one of the following Include and Exclude attributes:

    <CSFile Include="*.cs" Exclude="Form2.cs;Form3.cs"/>  
    
    • またはor -
    <VBFile Include="*.vb" Exclude="Form2.vb;Form3.vb"/>  
    

Images ディレクトリのサブディレクトリにあるすべての .jpg ファイルを含めるものの、Version2 ディレクトリのファイルは除外する場合To include all .jpg files in subdirectories of the Images directory except those in the Version2 directory

  • 次の Include 属性と Exclude 属性を使用します。Use the following Include and Exclude attributes:

    <JPGFile  
        Include="Images\**\*.jpg"  
        Exclude = "Images\**\Version2\*.jpg"/>  
    

    注意

    両方の属性にパスを指定する必要があります。You must specify the path for both attributes. ファイルの場所を指定するのに Include 属性で絶対パスを使用する場合、Exclude 属性においても絶対パスを使用する必要があります。Include 属性で相対パスを使用する場合は、Exclude 属性においても相対パスを使用する必要があります。If you use an absolute path to specify file locations in the Include attribute, you must also use an absolute path in the Exclude attribute; if you use a relative path in the Include attribute, you must also use a relative path in the Exclude attribute.

条件を使ってビルドの入力からファイルまたはディレクトリを除外するUsing Conditions to Exclude a File or Directory from the Inputs for a Build

たとえば、デバッグ ビルドには含めるものの、リリース ビルドには含めない項目がある場合には、Condition 属性を使用して項目を含める条件を指定できます。If there are items that you want to include, for example, in a Debug build but not a Release build, you can use the Condition attribute to specify the conditions under which to include the item.

リリース ビルドにのみファイル Formula.vb を含める場合To include the file Formula.vb only in Release builds

  • 以下のような Condition 属性を使用します。Use a Condition attribute similar to the following:

    <Compile  
        Include="Formula.vb"  
        Condition=" '$(Configuration)' == 'Release' " />  
    

Example

次のコードの例では、Form2.cs を除くディレクトリ内のすべての .cs ファイルを使用してプロジェクトをビルドします。The following code example builds a project with all of the .cs files in the directory except Form2.cs.

<Project DefaultTargets="Compile"  
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >  

    <PropertyGroup>  
        <builtdir>built</builtdir>  
    </PropertyGroup>  

    <ItemGroup>  
        <CSFile Include="*.cs Exclude="Form2.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

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