方法 : ビルドをクリーンするHow to: Clean a Build

ビルドをクリーンするとき、すべての中間ファイルと出力ファイルが削除され、プロジェクト ファイルとコンポーネント ファイルが残ります。When you clean a build, all intermediate and output files are deleted, leaving only the project and component files. プロジェクト ファイルとコンポーネント ファイルから、中間ファイルと出力ファイルの新しいインスタンスをビルドできます。From the project and component files, new instances of the intermediate and output files can then be built. MSBuildMSBuild とともに提供されている一般的なタスクのライブラリには、システム コマンドの実行に利用できる Exec タスクが含まれています。The library of common tasks that is provided with MSBuildMSBuild includes an Exec task that you can use to run system commands. タスクのライブラリに関する情報については、「タスク リファレンス」を参照してください。For more information on the library of tasks, see Task Reference.

出力項目のディレクトリを作成するCreating a Directory for Output Items

既定では、プロジェクトのコンパイル時に作成される .exe ファイルは、プロジェクトおよびソース ファイルと同じディレクトリに置かされます。By default, the .exe file that is created when you compile a project is placed in the same directory as the project and source files. ただし、一般的には、出力項目は別個のディレクトリに作成されます。Typically, however, output items are created in a separate directory.

出力項目のディレクトリを作成するにはTo create a directory for output items

  1. Property 要素を利用し、ディレクトリの場所と名前を定義します。Use the Property element to define the location and name of the directory. たとえば、プロジェクトおよびソースファイルを含むディレクトリに BuiltApp という名前のディレクトリを作成します。For example, create a directory named BuiltApp in the directory that contains the project and source files:

    <builtdir>BuiltApp</builtdir>

  2. ディレクトリが存在しない場合、MakeDir タスクを理使用してディレクトリを作成します。Use the MakeDir task to create the directory if the directory does not exist. 例:For example:

    <MakeDir Directories = "$(builtdir)"

    Condition = "!Exists('$(builtdir)')" />

出力項目を削除するRemoving the Output Items

中間ファイルと出力ファイルの新しいインスタンスを作成する前に、以前のインスタンスをすべて消去しておくことをお勧めします。Prior to creating new instances of intermediate and output files, you may want to clear all previous instances of intermediate and output files. RemoveDir タスクを利用し、ディレクトリとそれに含まれるすべてのファイルとディレクトリをディスクから削除します。Use the RemoveDir task to delete a directory and all files and directories that it contains from a disk.

ディレクトリとそのディレクトリに含まれるすべてのファイルを削除するにはTo remove a directory and all files contained in the directory

  • RemoveDir タスクを利用してディレクトリを削除します。Use the RemoveDir task to remove the directory. 例:For example:

    <RemoveDir Directories="$(builtdir)" />

Example

次のコード例プロジェクトには、新しいターゲット、Clean が含まれています。このターゲットは RemoveDir タスクを使用し、ディレクトリとそのディレクトリに含まれるすべてのファイルを削除します。The following code example project contains a new target, Clean, that uses the RemoveDir task to delete a directory and all files and directories that it contains. この例ではまた、Compile ターゲットは、ビルドのクリーン時に削除される出力項目に対して別個のディレクトリを作成します。Also in this example, the Compile target creates a separate directory for the output items that are deleted when the build is cleaned.

Compile は既定のターゲットとして定義されます。そのため、別のターゲットを指定しない限り、自動的に使用されます。Compile is defined as the default target and is therefore used automatically unless you specify a different target or targets. コマンド ライン スイッチ /target を使用し、別のターゲットを指定します。You use the command line switch /target to specify a different target. 例:For example:

msbuild <file name>.proj /target:Clean

/target スイッチは /t に短縮できます。また、複数のターゲットを指定できます。The /target switch can be shortened to /t and can specify more than one target. たとえば、ターゲット Clean を使用し、次にターゲット Compile を使用するには、次のように入力します。For example, to use the target Clean then the target Compile, type:

msbuild <file name>.proj /t:Clean;Compile

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

    <PropertyGroup>  
        <!-- Set the application name as a property -->  
        <name>HelloWorldCS</name>  

        <!-- Set the output folder as a property -->  
        <builtdir>BuiltApp</builtdir>  
    </PropertyGroup>  

    <ItemGroup>  
        <!-- Specify the inputs by type and file name -->  
        <CSFile Include = "consolehwcs1.cs"/>  
    </ItemGroup>  

    <Target Name = "Compile">  
        <!-- Check whether an output folder exists and create  
        one if necessary -->  
        <MakeDir Directories = "$(builtdir)"   
            Condition = "!Exists('$(builtdir)')" />  

        <!-- Run the Visual C# compiler -->  
        <CSC Sources = "@(CSFile)"   
            OutputAssembly = "$(BuiltDir)\$(appname).exe">  
            <Output TaskParameter = "OutputAssembly"  
                ItemName = "EXEFile" />  
        </CSC>  

        <!-- Log the file name of the output file -->  
        <Message Text="The output file is @(EXEFile)"/>  
    </Target>  

    <Target Name = "Clean">  
        <RemoveDir Directories="$(builtdir)" />  
    </Target>  
</Project>  

参照See Also

Exec タスク Exec Task
MakeDir タスク MakeDir Task
RemoveDir タスク RemoveDir Task
Csc タスク Csc Task
ターゲットTargets