빌드 출력 디렉터리 변경

구성별로(디버그, 릴리스 또는 둘 다) 프로젝트에서 생성된 출력의 위치를 지정할 수 있습니다.

빌드 출력 디렉터리 변경

  1. 프로젝트 속성 페이지를 열려면 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  2. 프로젝트 형식에 따라 적절한 탭을 선택합니다.

    • C#의 경우 빌드 탭을 선택합니다.
    • Visual Basic의 경우 컴파일 탭을 선택합니다.
    • C++ 또는 JavaScript의 경우 일반 탭을 선택합니다.
  3. 맨 위의 구성 드롭다운에서 출력 파일 위치를 변경하려는 구성(디버그, 릴리스 또는 둘 다)을 선택합니다.

  4. 페이지의 출력 경로 항목을 찾습니다. 경로는 프로젝트 형식에 따라 달라집니다.

    • C# 및 JavaScript 프로젝트의 출력 경로
    • Visual Basic 프로젝트의 빌드 출력 경로
    • Visual C++ 프로젝트의 출력 디렉터리

    출력을 생성할 경로를 입력하거나(절대 또는 루트 프로젝트 디렉터리를 기준으로), 찾아보기 선택하여 해당 폴더를 찾습니다.

    Visual Studio C#프로젝트의 출력 경로 속성

    참고 항목

    일부 프로젝트는 기본적으로 빌드 경로에 프레임워크와 런타임을 포함합니다. 이 설정을 변경하려면 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 프로젝트 파일 편집을 선택하여 다음을 추가합니다.

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

지정한 위치에 출력이 생성되지 않는 경우 Visual Studio의 메뉴 모음에서 선택하여 해당 구성(예를 들어 디버그 또는 릴리스)을 빌드 중인지 확인합니다.

Visual Studio 2019의 빌드 구성 선택기

빌드 출력 디렉터리 변경

Visual Studio 2022에는 프로젝트 형식에 따라 다양한 프로젝트 디자이너 사용자 인터페이스가 있습니다. C# .NET Framework 및 모든 Visual Basic 프로젝트는 레거시 .NET 프로젝트 디자이너를 사용하지만 C# .NET Core(및 .NET 5 이상) 프로젝트는 현재 .NET 프로젝트 디자이너를 사용합니다. C++ 프로젝트는 고유한 속성 페이지 사용자 인터페이스를 사용합니다. 이 섹션의 단계는 사용 중인 프로젝트 디자이너에 따라 다릅니다.

현재 .NET 프로젝트 디자이너를 사용하여 빌드 출력 디렉터리를 변경하려면

  1. 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

  2. 빌드 섹션을 확장하고 출력 하위 섹션을 스크롤 다운합니다.

  3. C#의 기본 출력 경로를 찾고 출력을 생성할 경로(루트 프로젝트 디렉터리에 대한 절대 또는 상대)를 입력하거나 찾아보기를 선택하여 대신 해당 폴더를 찾습니다. 구성 이름은 실제 출력 경로를 생성하기 위해 기본 출력 경로에 추가됩니다.

    .NET Core C# 프로젝트의 출력 경로 속성을 보여주는 스크린샷.

    참고 항목

    일부 프로젝트는 기본적으로 빌드 경로에 프레임워크와 런타임을 포함합니다. 이 설정을 변경하려면 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 프로젝트 파일 편집을 선택하여 다음을 추가합니다.

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

지정한 위치에 출력이 생성되지 않는 경우 Visual Studio의 메뉴 모음에서 선택하여 해당 구성(예를 들어 디버그 또는 릴리스)을 빌드 중인지 확인합니다.

Visual Studio 2022 빌드 구성 선택기의 스크린샷.

레거시 .NET 프로젝트 디자이너 또는 C++ 속성 페이지를 사용하여 빌드 출력 디렉터리를 변경하려면

  1. 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

  2. 프로젝트 형식에 따라 적절한 탭을 선택합니다.

    • C#의 경우 빌드 탭을 선택합니다.
    • Visual Basic의 경우 컴파일 탭을 선택합니다.
    • C++ 또는 JavaScript의 경우 일반 탭을 선택합니다.
  3. 맨 위의 구성 드롭다운에서 출력 파일 위치를 변경하려는 구성(디버그, 릴리스 또는 둘 다)을 선택합니다.

  4. 페이지의 출력 경로 항목을 찾습니다. 경로는 프로젝트 형식에 따라 달라집니다.

    • C# 및 JavaScript 프로젝트의 출력 경로
    • Visual Basic 프로젝트의 빌드 출력 경로
    • Visual C++ 프로젝트의 출력 디렉터리

    (루트 프로젝트 디렉터리에 대해 절대 또는 상대로) 출력을 생성할 경로를 입력하거나, 찾아보기를 선택하여 해당 폴더를 찾아봅니다.

    C# .NET Framework 프로젝트의 출력 경로 속성을 보여주는 스크린샷.

    참고 항목

    일부 프로젝트는 기본적으로 빌드 경로에 프레임워크와 런타임을 포함합니다. 이 설정을 변경하려면 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 프로젝트 파일 편집을 선택하여 다음을 추가합니다.

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

공통 출력 디렉터리로 빌드

기본적으로 Microsoft Visual Studio는 솔루션 내에서 고유 폴더에 있는 솔루션에서 각 프로젝트를 빌드합니다. 프로젝트의 빌드 출력 경로를 변경하여 모든 출력이 동일한 폴더에 배치되도록 할 수 있습니다.

모든 솔루션 출력을 공용 디렉터리에 배치하려면

  1. 솔루션에서 한 프로젝트를 클릭합니다.

  2. 프로젝트 메뉴에서 속성을 클릭합니다.

  3. 각 프로젝트에서 해당 형식에 따라 컴파일 또는 빌드를 선택하고 출력 경로 또는 기본 출력 경로를 솔루션의 모든 프로젝트에 사용할 폴더입니다.

  4. 프로젝트에 대한 프로젝트 파일을 열고 첫 번째 속성 그룹에 다음 속성 선언을 추가합니다.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <UseCommonOutputDirectory>true</UseCommonOutputDirectory>
    </PropertyGroup>
    

    UseCommonOutputDirectorytrue로 설정하면 Visual Studio 및 기본 빌드 엔진(MSBuild)에 동일한 폴더에 여러 프로젝트 출력을 배치한다고 알리므로 MSBuild는 프로젝트가 다른 프로젝트에 종속될 때 일반적으로 발생하는 복사 단계를 생략합니다.

  5. 솔루션의 모든 프로젝트에 대해 1-4단계를 반복합니다. 일반적인 출력 디렉터리를 사용하지 않아야 하는 예외적인 프로젝트가 있는 경우 일부 프로젝트를 건너뛸 수 있습니다.

프로젝트의 중간 출력 디렉터리(.NET 프로젝트)를 설정하려면

  1. 프로젝트 파일을 엽니다.

  2. 첫 번째 속성 그룹에 다음 속성 선언을 추가합니다.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <IntermediateOutputPath>path</IntermediateOutputPath>
    </PropertyGroup>
    

    경로는 프로젝트 파일을 기준으로 하거나 절대 경로를 사용할 수 있습니다. 경로에 프로젝트 이름을 넣으려면 MSBuild 속성 $(MSBuildProjectName), $(MSBuildProjectDirectory)를 사용하여 참조할 수 있습니다. 사용할 수 있는 추가 속성은 MSBuild 예약 및 잘 알려진 속성을 참조하세요.

  3. MIcrosoft Visual Studio는 빌드할 때 프로젝트 폴더 아래에 여전히 obj 폴더를 만들지만 비어 있습니다. 빌드 프로세스의 일부로 삭제할 수 있습니다. 이 작업을 수행하는 한 가지 방법은 빌드 후 이벤트를 추가하여 다음 명령을 실행하는 것입니다.

    rd "$(ProjectDir)obj" /s /q
    

    사용자 지정 빌드 이벤트 지정을 참조하세요.