[C#] 이전에 캡처되지 않았던 변수를 캡처하면 디버그 세션을 계속할 수 없습니다. ENC0048 해결 방법

이전에 캡처되지 않았던 변수를 캡처하면 디버그 세션을 계속할 수 없습니다. C#에서 디버깅을 할 때 가끔 이런 오류 메시지를 보신 적이 있으실 겁니다. 디버깅 시 오류코드 ENC0048의 원인과 해결 방법에 대해 알아보도록 합시다.

이전에 캡처되지 않았던 변수를 캡처하면 디버그 세션을 계속할 수 없습니다.

이전에 캡처되지 않았던 변수를 캡처하면 디버그 세션을 계속할 수 없습니다.

[코드를 편집하며 디버그 계속하기]는 프로그램이 중단 모드에 있는 동안 소스 코드를 변경하여 리컴파일 시간을 절약하도록 제공합니다. 다만, 몇 가지 제한사항이 있는데 ENC0048 오류와도 관련이 있는 사항입니다.

편집하며 계속하기 기능을 사용하면 디버깅 세션을 중지하지 않고 진행하는 과정에서 코드를 변경할 수 있으나, 해당하는 변수는 디버깅 세션 이전에 캡처된 변수이기 때문에, 할당하려는 변수가 캡처 이후 추가되었다면, 해당 변수를 추후에 사용하거나 디버깅 세션을 다시 시작해야 하여 해결할 수 있습니다.

지원되지 않는 코드 변경

언어 요소 또는 기능 지원되지 않는 편집 작업
모든 코드 요소 이름 바꾸기
네임스페이스 추가
네임스페이스, 형식, 멤버 삭제
제네릭 추가 또는 수정
인터페이스 수정
유형 추상 또는 가상 멤버 추가, 재정의 추가
유형 소멸자 추가
멤버 포함된 interop 형식을 참조하는 멤버 수정
멤버 코드를 실행하여 이미 액세스한 후 정적 멤버 수정
멤버(Visual Basic) On Error 또는 Resume 문을 사용하여 멤버 수정
멤버(Visual Basic) Aggregate, Group By, Simple Join 또는 Group Join LINQ 쿼리 절이 포함된 멤버 수정
메서드 시그니처 수정
메서드 메서드 본문을 추가하여 추상 메서드가 비추상 메서드가 되도록 설정
메서드 Delete 메서드 본문
특성 추가 또는 수정
이벤트 또는 속성 형식 매개 변수, 기본 형식, 대리자 형식 또는 반환 형식 수정
연산자 또는 인덱서 형식 매개 변수, 기본 형식, 대리자 형식 또는 반환 형식 수정
catch 블록 활성 문이 포함된 경우 수정
try-catch-finally 블록 활성 문이 포함된 경우 수정
using 문 추가
비동기 메서드/람다 .NET Framework 4 이하를 대상으로 하는 프로젝트에서 비동기 메서드/람다 수정
반복기 .NET Framework 4 이하를 대상으로 하는 프로젝트에서 반복기 수정

댓글