방법: 빌드 정리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

다음 코드 예제 프로젝트는 RemoveDir 작업을 사용하여 디렉터리 및 모든 파일과 포함하는 디렉터리를 삭제하는 새 대상 Clean을 포함합니다.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. 예를 들어 대상 Compile 대신 Clean 대상을 사용하려면 다음을 입력합니다.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