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 앱에는 다음 코드 변경이 지원되지 않습니다.
Blazor WebAssembly 핫 다시 로드는 다음 코드 변경 내용을 지원합니다.
Blazor WebAssembly 앱에는 다음 코드 변경이 지원되지 않습니다.
.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 설명서의 다음 리소스를 참조하세요.
ASP.NET Core