ASP.NET Core에 대한 .NET 핫 다시 로드 지원

.NET 핫 다시 로드는 스타일시트 변경을 포함한 코드 변경 내용을 실행 중인 앱에 적용합니다. 앱 다시 시작 및 앱 상태 손실이 없습니다. 핫 다시 로드는 모든 ASP.NET Core 6.0 이상 프로젝트에서 지원됩니다.

일반적으로 업데이트된 코드는 다시 실행되며 다음과 같은 조건이 적용됩니다.

  • 일부 시작 논리는 한 번만 실행됩니다.
    • 미들웨어, 코드 업데이트가 인라인 미들웨어 대리자에 관한 사항이 아닌 경우.
    • 구성된 서비스.
    • 경로 만들기 및 구성, 코드 업데이트가 경로 처리기 대리자에 관한 사항이 아닌 경우(예: OnInitialized)
  • Blazor 앱에서는 프레임워크가 자동으로 Razor 구성 요소 렌더링을 트리거합니다.
  • MVC 및 Razor Pages 앱에서는 핫 다시 로드가 자동으로 브라우저 새로 고침을 트리거합니다.
  • Razor구성 요소 매개 변수 특성을 제거하면 구성 요소가 렌더링되지 않습니다. 앱을 다시 시작해야 합니다.

지원되지 않는 시나리오에 대한 자세한 내용은 지원되는 코드 변경(C# 및 Visual Basic)을 참조하세요.

Blazor WebAssembly

Blazor WebAssembly 핫 다시 로드는 다음 코드 변경 내용을 지원합니다.

  • 새 형식
  • 중첩 클래스
  • 변수, 식, 문의 추가, 제거, 편집과 같은 메서드 본문에 대한 대부분의 변경
  • 람다 식로컬 함수의 본문에 대한 변경
  • 기존 형식에 정적 및 인스턴스 메서드 추가
  • 기존 형식에 정적 및 인스턴스 필드, 이벤트 및 속성을 추가합니다.
  • 기존 메서드에 정적 람다 추가
  • 이전에 이미 this를 캡처한 기존 메서드에 this를 캡처하는 람다 추가

이전에 구성 요소 매개 변수의 값을 설정한 특성이 제거되면 해당 구성 요소가 삭제되고 다시 초기화되어 제거된 매개 변수를 다시 기본값으로 설정합니다.

Blazor WebAssembly 앱에는 다음 코드 변경이 지원되지 않습니다.

Blazor WebAssembly 핫 다시 로드는 다음 코드 변경 내용을 지원합니다.

  • 새 형식
  • 중첩 클래스
  • 변수, 식, 문의 추가, 제거, 편집과 같은 메서드 본문에 대한 대부분의 변경
  • 람다 식로컬 함수의 본문에 대한 변경
  • 기존 형식에 정적 및 인스턴스 메서드 추가
  • 기존 형식에 정적 필드 추가
  • 기존 메서드에 정적 람다 추가
  • 이전에 이미 this를 캡처한 기존 메서드에 this를 캡처하는 람다 추가

이전에 구성 요소 매개 변수의 값을 설정한 특성이 제거되면 해당 구성 요소가 삭제되고 다시 초기화되어 제거된 매개 변수를 다시 기본값으로 설정합니다.

Blazor WebAssembly 앱에는 다음 코드 변경이 지원되지 않습니다.

  • await 연산자 또는 yield 키워드 식 추가
  • 메서드 매개 변수의 이름 변경
  • 인스턴스(비static) 필드, 이벤트 또는 속성 추가

Blazor WebAssembly 핫 다시 로드는 다음 코드 변경 내용을 지원합니다.

  • 변수, 식, 문의 추가, 제거, 편집과 같은 메서드 본문에 대한 대부분의 변경
  • 람다 식로컬 함수의 본문에 대한 변경

Blazor WebAssembly 앱에는 다음 코드 변경이 지원되지 않습니다.

  • 새 람다 또는 로컬 함수 추가
  • await 연산자 또는 yield 키워드 식 추가
  • 메서드 매개 변수의 이름 변경
  • 메서드 본문 외부의 변경 내용
  • 인스턴스(비static) 필드, 이벤트 또는 속성 추가

.NET CLI

dotnet watch 명령을 사용하여 핫 다시 로드를 활성화합니다.

dotnet watch

앱을 강제로 다시 빌드하고 다시 시작하려면 명령 셸에서 키보드 조합 Ctrl+R을 사용합니다.

‘편집 다시 실행’이라고 하는 지원되지 않는 코드 편집이 수행되면 dotnet watch에서 앱을 다시 시작할 것인지 묻습니다.

  • : 앱을 다시 시작합니다.
  • 아니요: 앱을 다시 시작하지 않고, 변경 내용을 적용하지 않은 채 앱을 실행 상태로 둡니다.
  • 항상: 편집 다시 실행이 발생할 때 필요에 따라 앱을 다시 시작합니다.
  • 안 함: 앱을 다시 시작하지 않고 이후 프롬프트를 방지합니다.

핫 다시 로드에 대한 지원을 사용하지 않도록 설정하려면 dotnet watch 명령에 --no-hot-reload 옵션을 전달합니다.

dotnet watch --no-hot-reload

핫 다시 로드 사용 안 함

Properties/launchSettings.json의 다음 설정은 핫 다시 로드를 사용하지 않도록 설정합니다.

"hotReloadEnabled" : false

추가 리소스

자세한 내용은 Visual Studio 설명서의 다음 리소스를 참조하세요.