다음을 통해 공유


"C#, VB, C++의 '편집 및 계속' 기능 구성"

디자인 시간에 Visual Studio 도구>옵션 메뉴에서 이전에 '편집하며 계속하기'라고도 하는 핫 리로드를 비활성화하거나 활성화할 수 있습니다. Hot Reload 디버그 빌드에서만 작동합니다. 자세한 내용은 핫 재로드참조하세요.

네이티브 C++의 경우 핫 다시 로드를 사용하려면 이 옵션을 사용해야 /INCREMENTAL 합니다. C++의 기능 요구 사항에 대한 자세한 내용은 이 블로그 게시물편집하며 계속하기(C++)참조하세요.

메모

IntelliTrace를 사용하도록 설정하고 IntelliTrace 이벤트와 호출 정보를 모두 수집하면 핫 다시 로드가 비활성화됩니다. 자세한 내용은 IntelliTrace참조하세요.

편집하며 계속하기는 프로그램이 중단 모드에 있는 동안 소스 코드를 변경할 수 있는 시간 절약 기능입니다. 계속 또는 단계같은 실행 명령을 선택하여 프로그램 실행을 다시 시작하면 편집하며 계속하기는 몇 가지 제한 사항이 있는 코드 변경 내용을 자동으로 적용합니다. 이렇게 하면 전체 프로그램을 중지하고, 다시 컴파일하고, 디버깅 세션을 다시 시작하는 대신 디버깅 세션 중에 코드를 변경할 수 있습니다.

디자인 타임에 Visual Studio 옵션 대화 상자에서 편집 및 계속을 사용하지 않도록 설정하거나 사용하도록 설정할 수 있습니다. 편집하며 계속하기 디버그 빌드에서만 작동합니다. 자세한 내용은 편집하며 계속하기참조하세요.

네이티브 C++의 경우 편집 후 계속/INCREMENTAL 옵션을 사용해야 합니다. C++의 기능 요구 사항에 대한 자세한 내용은 이 블로그 게시물편집하며 계속하기(C++)참조하세요.

메모

IntelliTrace를 사용하도록 설정하고 IntelliTrace 이벤트와 호출 정보를 모두 수집하면 편집하며 계속하기 기능을 사용할 수 없습니다. 자세한 내용은 IntelliTrace참조하세요.

핫 리로드 활성화 및 구성

핫 리로드 드롭다운 버튼에서 설정을 선택하여 핫 리로드를 구성할 수 있습니다.

핫 리로드의 구성 스크린샷

또는 도구>옵션 창을 열고 모든 설정>디버깅>.NET/C++ 핫 다시 로드 섹션에서 옵션을 조정합니다. 다음과 같은 옵션을 사용할 수 있습니다.

  • 핫 다시 로드 사용: 앱이 연결된 디버거(F5)로 실행될 때 .NET 및 C++ 코드와 함께 핫 다시 로드 기능을 사용합니다.

  • 계속 시 변경 내용 자동 적용(네이티브 전용): Visual Studio는 중단 상태에서 프로세스를 계속할 때 수행한 미해결 코드 변경 내용을 자동으로 컴파일하고 적용합니다. 선택하지 않은 경우 디버그 메뉴의 코드 변경 내용 적용 항목을 사용하여 변경 내용을 적용하도록 선택할 수 있습니다.

  • 부실 코드에 대한 경고(네이티브 전용): 부실 코드에 대한 경고를 가져옵니다.

  • 디버깅하지 않을 때 사용: 앱이 연결된 디버거 없이 실행될 때 핫 다시 로드를 사용하도록 설정합니다(Ctrl + F5).

  • 파일 저장 시 적용: 파일이 저장되면 변경 내용을 적용합니다.

  • 로깅 세부 정보: 핫 다시 로드를 사용하도록 설정한 경우 로깅 수준을 최소,상세 또는 진단으로 설정합니다.

Visual Studio에서 .NET C++ 핫 다시 로드에 대한 설정의 스크린샷.

또는 도구>옵션 대화 상자를 열고 Debugging.NET>/C++ 핫 다시 로드 섹션에서 옵션을 조정합니다. 다음과 같은 옵션을 사용할 수 있습니다.

  • 핫 다시 로드 사용: 연결된 디버거(F5)로 시작할 때 핫 다시 로드를 사용하도록 설정합니다.

  • 디버깅 없이 시작할 때 핫 다시 로드 사용: 디버거를 연결하지 않고 시작할 때 핫 다시 로드를 사용하도록 설정합니다(Ctrl+F5).

  • 파일 저장 시 핫 다시 로드 적용: 파일을 저장할 때 코드 변경 내용을 적용합니다.

  • 로깅의 상세 옵션: 핫 리로드 출력 창에 표시되는 정보의 양을 필터링합니다.

.NET 핫 리로드 설정의 스크린샷

C++의 경우 도구> 옵션디버깅>일반을 열어 추가> 설정할 수 있습니다. 핫 리로드 활성화가 선택되었는지 확인하고, 다른 옵션들을 설정하십시오.

  • 계속 시 변경 내용 적용(네이티브 전용): Visual Studio는 중단 상태에서 프로세스를 계속할 때 수행한 미해결 코드 변경 내용을 자동으로 컴파일하고 적용합니다. 선택하지 않은 경우 디버그 메뉴의 코드 변경 내용 적용 항목을 사용하여 변경 내용을 적용하도록 선택할 수 있습니다.

  • 부실 코드에 대한 경고(네이티브 전용): 부실 코드에 대한 경고를 가져옵니다.

.NET 핫 다시 로드의 경우 .NET 6+ 프로젝트의 launchSetting.json 파일을 수정하고 hotReloadEnabledfalse설정하여 프로젝트 수준에서 핫 다시 로드를 사용할 수 있는지 여부를 제어할 수도 있습니다.

본보기:

{
  "profiles": {
    "Console": {
      "commandName": "Project",
      "hotReloadEnabled": false
    }
  }
}

"편집 및 계속 사용 설정 또는 해제"

  1. 디버깅 세션에 있는 경우 디버깅을 중지합니다(디버그>디버깅 중지 또는 Shift+F5).

  2. 도구>옵션>(또는 디버그>옵션) >디버깅>일반에서, 오른쪽 창에서 '편집하고 계속하기'를 선택합니다.

    메모

    IntelliTrace를 사용하도록 설정하고 IntelliTrace 이벤트와 호출 정보를 모두 수집하면 편집하며 계속하기 기능을 사용할 수 없습니다. 자세한 내용은 IntelliTrace참조하세요.

  3. C++ 코드의 경우 네이티브 편집 및 계속 사용하도록 설정하고 다른 옵션을 설정합니다.

    • 계속 시 변경 내용 적용(네이티브 전용): Visual Studio는 중단 상태에서 프로세스를 계속할 때 수행한 미해결 코드 변경 내용을 자동으로 컴파일하고 적용합니다. 선택하지 않은 경우 디버그 메뉴의 코드 변경 내용 적용 항목을 사용하여 변경 내용을 적용하도록 선택할 수 있습니다.

    • 부실 코드에 대한 경고(네이티브 전용): 부실 코드에 대한 경고를 가져옵니다.

  4. 확인선택하세요.

자동 다시 시작 구성

핫 다시 로드는 전체 디버그 세션을 종료하는 대신 지원되지 않는 변경(무례한 편집이라고도 함)이 수행될 때 앱의 프로세스를 자동으로 다시 시작할 수 있습니다. 이를 사용하도록 설정하려면 프로젝트 파일을 편집하여 다음 속성 선언을 추가합니다.

<PropertyGroup>
  <HotReloadAutoRestart>true</HotReloadAutoRestart>
</PropertyGroup>

Directory.Build.props 파일에서 이 속성을 설정할 수도 있습니다. 자동 다시 시작은 빠른 프로세스 다시 시작이 가능한 프로젝트 유형(예: 일부 Aspire 또는 웹 프로젝트)에서 작동하므로 중단을 최소화하면서 디버깅을 계속할 수 있습니다.

프로세스 기반 다시 시작입니다. 예를 들어 여러 프로젝트를 디버깅하는 경우 변경된 프로젝트와 종속 프로젝트만 다시 빌드되고 다시 시작됩니다.

Razor에 대한 핫 리로드 구성

Roslyn 프로세스 내에서 Razor 컴파일러를 공동 호스팅하면 핫 다시 로드 중에 .razor 파일을 편집하는 것이 더 빠르고 효율적입니다. 또한 Cohosting은 핫 다시 로드를 사용할 때 전반적인 안정성을 향상시킵니다.

공동 호스팅을 사용하도록 설정하려면 도구>옵션을 선택한 다음 검색합니다 cohost. Razor에 Roslyn Cohost 서버 사용 설정을 선택하거나 선택 취소합니다(다시 시작해야 합니다). 이 옵션을 사용하도록 설정하면 Visual Studio를 다시 시작합니다. 공동 호스팅은 기본적으로 사용하도록 설정됩니다.

코드 변경 중지

핫 다시 로드가 코드 변경 내용을 적용하는 동안 작업을 중지할 수 있습니다.

편집 및 계속 기능은 코드 변경을 적용하는 중일 때 작업을 중단할 수 있습니다.

주의

관리 코드에서 코드 변경을 중지하면 예기치 않은 결과가 발생할 수 있습니다. 관리 코드에 변경 내용을 적용하는 것은 일반적으로 빠른 프로세스이므로 관리 코드에서 코드 변경을 중지할 필요가 거의 없습니다.

코드 변경 내용 적용을 중지하려면 다음을 수행합니다.

  • 코드 변경 중지 선택디버그 메뉴에서 합니다.

    이 메뉴 항목은 코드 변경이 적용되는 경우에만 표시됩니다.

    이 옵션을 선택하면 코드 변경 내용이 커밋되지 않습니다.