편집하고 계속하기 : "다음 경우에는 변경이 허용되지 않습니다."


108

깨끗한 WinForms 프로젝트를 생성하더라도 편집 및 계속이 작동하지 않고 오류가 발생합니다.

디버거가 이미 실행중인 프로세스에 연결되었거나 디버깅중인 코드가 빌드 또는 런타임에 최적화 된 경우 변경이 허용되지 않습니다.

  1. 도구 → 옵션 → 디버깅에서 편집하고 계속하기 옵션이 선택되어 있습니다.
  2. 최적화가 활성화되지 않았습니다.
  3. 설정된 관리 프로파일 러가없는 것 같습니다.
  4. 디버그 모드에서 실행 중입니다.
  5. x64 CPU 및 Windows XP 32 비트에서 실행 중이지만 플랫폼 대상을 AnyCpu가 아닌 x86으로 설정해도 도움이되지 않습니다.
  6. Visual Studio 설치 복구는 도움이되지 않습니다.

MSDN 웹 사이트에서도이 기사 를 찾았습니다 .

지원되지 않는 시나리오

다음 디버깅 시나리오에서는 편집하고 계속하기를 사용할 수 없습니다.

  • Windows 98에서 디버깅.

  • 혼합 모드 (기본 / 관리) 디버깅.

  • SQL 디버깅.

  • Dr. Watson 덤프 디버깅.

  • "처리되지 않은 예외에서 호출 스택 해제"옵션이 선택되지 않은 경우 처리되지 않은 예외 후 코드 편집

  • 임베디드 런타임 애플리케이션 디버깅.

  • 디버그 메뉴에서 시작을 사용하여 응용 프로그램을 실행하는 대신 연결 대상으로 응용 프로그램을 디버깅합니다.

  • 최적화 된 코드 디버깅.

  • 대상이 64 비트 애플리케이션 인 경우 관리 코드 디버깅. 편집하고 계속하기를 사용하려면 대상을 x86으로 설정해야합니다. (프로젝트 속성, 컴파일 탭, 고급 컴파일러 설정.)

  • 빌드 오류로 인해 새 버전이 빌드에 실패한 후 이전 버전의 코드를 디버깅합니다.

하지만이 목록의 모든 항목에 "아니오"라고 대답 할 수 있습니다.

이전에는 작동했지만 며칠 전에 작동이 중지되었고 그 이유가 무엇인지 모르겠습니다.


2
릴리스 모드에서 실행 중입니까? X64에서 실행 중입니까?
Sam Saffron

E & C를 시도하는 방법이 정말 짧습니까? 아마도 인라인되었을 것입니다 (디버그에서 인라인이 발생하지 않는다고 생각하지만)
Sam Saffron

매우 짧거나 매우 긴 어떤 방법에서도 작동하지 않습니다.
nightcoder 2009-06-18

아직 수리 설치를 시도하셨습니까?
Richard Anthony Hein

3
E & C는 꽤 복잡한 기능이라는 점을 추가해야 할 것 같습니다. 디버거의 테스트 매트릭스는 방대하며 모든 조합에서 E & C가 작동하도록하는 것은 매우 어려울 것입니다. 그러나 그것은 또한 정말 중요한 기능이기 때문에 우리는 그것이 배송 될 수 있도록 많은 제한을가했습니다. 우리가 적용한 의도적 인 제약 내에서 우리가 제공 한 최고 품질의 기능 중 하나입니다.
Jay Bazuzi

답변:


21

마침내 문제를 해결했습니다 : UNINSTALL Gallio

Gallio는 거친 가장자리가 상당히 많은 것 같으며 MbUnit 3.0을 사용하지 않고 MbUnit 2.0 프레임 워크를 사용하지만 설치 프로그램 (Visual Studio 플러그인도 설치)에서 설치하지 않고 실행중인 gallio 러너를 사용하는 것이 좋습니다.

덧붙여서 Gallio 플러그인을 "비활성화"한 후에도 문제가 발생했습니다. 설치 제거만으로 문제가 해결되었습니다.

추신. nightcoder에 의해 편집 됨 :
제 경우에는 TypeMock Isolator (모킹 프레임 워크)를 비활성화하는 것이 마침내 도움이되었습니다 ! 이제 편집 및 계속이 작동합니다 !!!

TypeMock 지원의 답변은 다음과 같습니다.

편집 및 계속 문제를 더 자세히 살펴보고 Microsoft와 대화 한 후 Isolator에서는 해결할 수 없다는 결론에 도달했습니다. Isolator는 CLR 프로파일 러를 구현하며, 연구에 따르면 CLR 프로파일 러가 활성화되고 연결되면 편집 및 계속이 자동으로 비활성화됩니다. 이것은 더 이상 버그로 간주되지 않고 Isolator의 한계라고 말해서 유감입니다.


69

기타 적용 가능한 솔루션

다음은 편집 및 계속을 빠르게 수정하려는 경우 시도 할 수 있는 불완전하고 순서가없는 해결 방법 목록입니다.

  • 디버그 모드 에 있는지 확인
  • 혼합 모드 프로세스를 시작하고 있지 않은지 확인하십시오.
  • CPU 대상을 AnyCPU가 아닌 x86 으로 설정하십시오 (x64 시스템에서)
  • 프로젝트 속성-> 디버그 에서 디버그 모드 에 대한 코드 최적화 확인란을 선택 취소합니다.
  • 고급 컴파일러 설정 에서 최적화 활성화를 선택 취소 합니다.
  • (ASP.NET) 해당하는 경우 나이트 코더의 답변 확인
  • (ASP.NET) 그럴 경우이 답변을 (행렬로) 확인하십시오.
  • (ASP.NET) 탭 에서 편집하고 계속하기가 활성화되어 있는지 확인합니다 (vs2010).
  • (ASP.NET) 속성> 웹> 서버로 이동하고 Visual Studio 개발 서버 사용 아래에서 사용 및 계속 이 선택되어 있는지 확인합니다 .
  • (ASP.NET WebAPI) 편집을 시도하기 전에 중단 점을 사용하여 Controller의 메서드에서 중지했는지 확인하십시오.
  • 에 (vs2017) 이동 도구> 옵션> 디버깅선택 해제 (선택 해제) '편집하며 계속하기'. 이것은 실제로 '통상적 인'조언과 반대입니다 (이 게시물의 다른 요점 참조). 실행중인 프로그램 을 실제로 변경할 수는 없습니다 (즉, 코드 변경 사항을 핫스왑하지 않음)-단순히 코드를 편집 할 수 있습니다 (즉, 성가신 메시지를 방지하고 편집기를 "잠금") ).
  • 도구> 옵션> 디버깅> 일반으로 이동 하여 원본 버전과 정확히 일치하는 소스 파일 필요 가 선택 취소 되어 있는지 확인합니다.
  • Windows 디버그 힙 할당 자 사용 (기본 만 해당) [VS Community 2017]을 선택합니다.
  • Microsoft Fakes를 사용하고 있습니까? 편집 및 계속을 금지합니다.
  • 작업 관리자 에서 프로세스 트리 종료 를 선택하여 모든 * .vshost.exe 인스턴스를 종료 합니다. VS는 올바른 인스턴스를 다시 생성합니다.
  • Debug-> Delete All Breakpoints로 모든 중단 점을 제거하십시오.
  • 활성화 및 계속도구> 옵션> 디버깅 메뉴와 프로젝트 설정 모두에 있습니다. 두 곳 모두 확인하십시오. 확장 Intellitrace 설정에서는 편집하고 계속하기가 지원되지 않습니다.
  • 확인 될 디버그 정보는 에서 프로젝트 속성> 빌드> 고급>을 출력> 디버그 정보가 설정되어 전체
  • 일부 플러그인이 방해가 될 수 있습니다. 비활성화 / 제거한 다음 다른 솔루션을 다시 시도하여 확인하십시오.
  • 주의를 충분히 기울이지 않으면이 문제를 해결하는 동안 발생하는 오류가 진단하기 더 쉬운 다른 것으로 변경 될 수 있습니다. 예 : 람다 식을 포함하는 메서드는 편집 및 계속을 지원할 수 없습니다.
  • 시스템 변수 COR_ENABLE_PROFILING가로 설정되지 않았는지 확인하십시오 1. 일부 프로파일 러는 설치할 때이를 설정하고 제거 후에 그대로 둡니다. 명령 프롬프트를 열고 다음을 입력 set하여 시스템이 영향을 받는지 빠르게 확인하십시오. 그렇다면 변수를 제거하거나 다음과 같이 설정하십시오 0.

    • Windows 8 이상에서는 시스템 (제어판)을 검색합니다 .
    • 고급 시스템 설정 링크를 클릭합니다 .
    • 환경 변수를 클릭합니다 .
    • 없애다 COR_ENABLE_PROFILING
  • 알고 있어야 지원되지 않는 시나리오 (같은 질문에보고) 및 그 지원되지 않는 편집 .


* '당신'은 해결책을 찾기 위해 키보드로 머리를 두드리는 페이지 방문자를 의미합니다.


여기에 나열되지 않은 경우이 답변을 편집하여 해결 방법을 추가하십시오!


5
그것은 COR_ENABLE_PROFILING이었습니다 ... 왜 설정되었는지 모릅니다. 감사. 이제 키보드에서 내 머리를 망치지 마라.
Florian Lagg

2
나는 모든 것을 시도했지만 일했습니다. 그런 다음 중단 모드 (debug-> break all) 또는 중단 지점에 있어야한다는 것을 깨달았습니다. 이것을 목록에 추가하십시오. msdn.microsoft.com/en-us/library/7932e88z.aspx
Niloofar 2017 년

1
저에게 적합합니다. 네 번째 줄 "프로젝트 속성
Aljohn Yamaro

2
나를 위해 해결 한 한 가지는 여기에 언급되지 않았습니다 . 도구> 옵션> 디버깅에서 "편집 및 계속 사용"옵션 을 비활성화 (선택 취소)해야했습니다. 이것은 당신이 직관적으로 생각하는 것과는 완전히 정반대이지만 이것이 나를 위해 그것을 고친 것입니다 (즉, 그 성가신 메시지를 막고 내 코드를 편집하게합니다).
leo '

1
@leo 자유롭게 편집 할 수있는 커뮤니티 위키입니다. '편집'버튼이 작동하지 않습니까? 당신이 그렇게하기에 충분한 명성을 가지고있는 것 같습니다. 추신. 분산이 적도록 답변에 대한 참조를 추가했습니다.
beppe9000

23

ASP.NET 응용 프로그램을 디버깅하는 경우 속성> 웹> 서버로 이동하고 Visual Studio 개발 서버 사용에서 "사용 및 계속"이 선택되어 있는지 확인합니다.


3
또한 편집 코드에 다음, 디버깅하는 동안 일시 정지를 누르십시오 할 필요가
알렉세이 오 벅홉

내가 지역 IIS를 사용하는 경우, "활성화하고 계속"desable입니다
Khoshtarkib

11

나는 같은 문제가 있었다. VS 2008을 다시 설치했지만 문제가 사라지지 않았습니다. 그러나 모든 중단 점을 삭제하면 작동하기 시작했습니다.

Debug->Delete All Breakpoints

코드에 중단 점이있는 aspx 페이지를 삭제 한 다음 동일한 이름으로 다른 페이지를 만들었 기 때문에 발생했다고 생각합니다. 이것은 아마도 VS 2008을 혼란스럽게 만들었습니다.


5

확인해야 할 몇 가지 사항

  • 컴파일이 디버그 대 릴리스로 설정되어 있는지 확인하십시오.
  • 혼합 모드 프로세스를 시작하고 있지 않은지 확인하십시오.
  • 64 비트 머신 인 경우 CPU 타겟을 AnyCPU가 아닌 x86으로 설정해야합니다.

편집하다

나는 이것이 중요하다고 생각하지 않지만 호스팅 프로세스가 대상 플랫폼에 대해 활성화되어 있는지 확인하십시오. 아마 도움이되지 않을 것입니다.

새로운 프로젝트에 대해 재현된다면 훨씬 더 미묘한 것일 수 있습니다. 나는 다음을 시도 할 것입니다.

  • HKCU : \ Software \ Wow6432Node \ VisualStudio \ 9.0 백업 (이름을 바꿀 수도 있음)
  • 동일한 키 삭제
  • 재현을 다시 시도하십시오.

2
혼합 모드 프로세스 란 무엇입니까? 새로운 winforms 프로젝트도 시도했습니다.
nightcoder

HKCU : \ Software \ Wow6432Node \ 노드가 없습니다
nightcoder

@nightcoder 그런 다음 HKCU : \ Software \ Microsoft \ VisualStudio \ 9.0을 시도해보세요.
JaredPar

5

위의 솔루션 중 어느 것도 나를 위해 일하지 않았습니다 (64x 컴퓨터에서 실행 됨).

마지막으로 내가 클릭 'advanced compiler settings'하고 UNCHECKED 'enable optimizations '나는 지금 코드와 편집을 통해 단계를 디버깅 할 수있다.


2
이것은 Visual Basic 전용 인 것 같습니다 : msdn.microsoft.com/en-us/library/07bysfz2%28v=vs.100%29.aspx
Marcel

나를 위해 작동합니다! VS2013, VB.Net, 프레임 3.5
MiBol 2015 년

1
그리고 이러한 설정은 어디에 있습니까?
vapcguy

5

"편집 및 계속"을 활성화하면 중단 모드에있을 때만 코드를 편집 할 수 있습니다. 예를 들어 예외로 인해 실행이 일시 중지되거나 중단 점에 도달하여 코드를 편집 할 수 있습니다.

이것은 실행이 일시 중지되지 않으면 코드를 편집 할 수 없음을 의미합니다 ! 디버깅 (ASP.NET) 웹 프로젝트의 경우 요청간에 변경을 수행하는 경우가 많기 때문에 이는 매우 직관적이지 않습니다. 현재 (아마도) 디버깅 코드는 실행 중이 아니지만 일시 중지되지 않았습니다!
이 문제를 해결하려면 "모두 중단"을 클릭하거나 Ctrl+ Alt+를 누를 수 있습니다 Break. 또는 어딘가 (예 : Page_Load이벤트) 에 중단 점을 설정 한 다음 페이지를 다시로드하여 중단 점에 도달하면 실행이 일시 중지되도록하고 이제 코드를 편집 할 수 있습니다. .cs파일의 코드도 .


4

저에게는 이해가 안되는 이유로 "고급 컴파일러 설정"의 "디버그 정보 생성"설정이 "전체"대신 "pdb 전용"으로 설정되었습니다.

기본적으로이 매개 변수는 항상 "Full"로 설정되지만 신비한 폴터 가이스트가 지난 밤에이 매개 변수를 변경했습니다. :)

추신 : Visual Studio 2010과 함께 Visual Basic .Net에 있습니다.


4

ASP.NET 앱에 문제가있는 경우 웹 탭 (vs2010)에서 편집하고 계속 사용하도록 설정했는지 확인합니다. 이전 버전에는 ASP.NET 디버깅에 대한 별도의 설정도있었습니다.

문안 인사,

아담.


4

프로젝트 속성에서 빌드 및 디버그 탭이 디버그로 설정되어 있고 다른 모든 설정이 올바른 경우에도 여전히 메시지가 표시되지만 빌드 메뉴에서 더 많은 정보를 파헤친 후 구성 관리자를 선택하고 디버그가 선택되었는지 확인합니다. 두 곳에서도 마찬가지입니다. 그림으로 이동 ... 디버그를 설정하려면 몇 개의 다른 장소가 필요합니까 ?????? 프로젝트-구성을 디버그로 설정 한 다음 빌드-관리자에서 변경되지 않았으므로 프로젝트 구성도 동일한 설정을 변경했습니다. 다시 Microsoft 문제처럼 보입니다 .......


4

이 문제는 Intellitrace 설정 때문입니다.

Intellitrace가 활성화 된 경우 Intellitrace 이벤트 만 선택되었는지 확인합니다.

그렇지 않으면 편집이 허용되지 않고 계속됩니다 ..

Intellitrace 옵션을 클릭하면 경고가 표시됩니다.


이것이 문제입니다!
beppe9000 2014

Visual Studio 도구에서 "Intellitrace"에 대한 모든 옵션을 검색했지만 VS Community 2017에는 이러한 옵션이 없습니다. 여기에서 조금 더 자세히 설명하면 도움이됩니다.
vapcguy 18:57에

4

다음 촬영은 VS2010을 사용하는 데 도움이되었습니다.

도구, 옵션, 디버깅, 일반으로 이동하여 "원본 버전과 정확히 일치하는 소스 파일 필요"가 선택 해제되어 있는지 확인하십시오.


3

디버거가 중단 점에 도달하지 않았거나 모두 중단 (일시 중지)을 누르지 않았을 때 발생합니다. 그렇게 간단 할 수는 없습니까?


디버거가 중단 점에 도달하고 코드에서 무언가를 변경하려고 할 때 발생합니다.
nightcoder 2009-06-18

3

오류는 가능한 원인이 "디버그되는 코드가 빌드 또는 런타임에 최적화되었습니다"라고 말합니다. 프로젝트 속성-> 디버그로 이동하고 디버그 모드의 코드 최적화 상자를 선택 취소합니다.


3

Microsoft Visual Studio 2008에서이 문제가 발생했으며 솔루션은 쉽습니다. 프로젝트를 실행할 때 "Release"가 아닌 "Debug"모드로 설정하십시오. 다른 사람 솔루션이 유용 할 수 있습니다.


2

새 프로젝트를 생성하면 디버깅 중 편집이 작동하지 않습니다. 새 웹 사이트를 만들면 디버깅 중에 편집이 예상대로 작동합니다.


1

제 경우에는 기본 디버거 설정으로 재설정하고 IntelliTrace-> intellytrace 이벤트 만 설정하면 도움이됩니다.


1

VS2010 사용에 도움이되는 몇 가지 사항 :

  • 도구, 옵션, 디버깅, 일반으로 이동하여 "원본 버전과 정확히 일치하는 소스 파일 필요"가 선택 해제되어 있는지 확인하십시오.
  • 중지 된 프로세스에서 VS 디버거를 분리하는 등 여러 .vshost.exe 인스턴스가 남을 수 있습니다. 이것은 중단 점과 컴파일도 방해합니다. 작업 관리자의 프로세스 탭을 사용하여 각 인스턴스를 마우스 오른쪽 단추로 클릭하고 프로세스 트리 끝내기를 선택하여 .vshost.exe의 모든 인스턴스를 종료합니다. VS는 새 인스턴스를 만듭니다.

1

사용하지 않았기 때문에 프로젝트에서 데이터 세트를 제거했습니다. 그 후 디버깅 할 때 프로그램을 수정할 수 있습니다.


1

나는 다른 모든 답변에서 언급 한 모든 변경을 수행했지만 아무것도 작동하지 않았습니다. 내가 무엇을 배웠습니까? 활성화 및 계속 은 도구> 옵션> 디버깅 메뉴와 프로젝트 설정 모두에 있습니다. 둘 다 확인한 후 Enable and Continue가 나를 위해 일했습니다.


3
어떤 프로젝트 설정? 너무 모호한
Adaptabi

@Adaptabi 즉, 프로젝트 이름을 마우스 오른쪽 단추로 클릭하고 속성을 클릭 한 다음 (웹 프로젝트 인 경우) 웹을 클릭하면 "편집 및 계속 사용"이 선택되어 있는지 확인하는 확인란이 있습니다.
vapcguy

1

나는 오늘 이것을 만났습니다. 디버그 정보를 pdb 전용으로 설정하면 편집 및 계속이 작동하지 않는 것으로 나타났습니다.

먼저 디버그 정보가 "전체"로 설정되어 있는지 확인하십시오!

프로젝트 속성> 빌드> 고급> 출력> 디버그 정보


1

비논리적 인 것처럼 보이지만 유일한 방법은 편집을 비활성화하고 VS 2017 옵션에서 계속 ... 그런 다음 AspNet 편집하고 계속 작동하기 시작했습니다 ...


바로 그거죠! 반 직관적이지만 저에게도 효과가 있었던 것은 "편집 및 계속" 을 비활성화 하는 것입니다 . 변경 사항을 "핫 스왑"하지는 않지만 최소한 코드를 편집하면 앱을 다시 시작할 때 적용됩니다.
레오

1

나를 위해 일한 것은 "관리되는 호환성 모드 사용"의 선택을 취소하는 것입니다.

도구-> 옵션-> 디버깅

TBN : "원본 버전과 정확히 일치하는 소스 파일 필요"를 선택하거나 선택 취소해도 E & C에 영향을주지 않는 것 같습니다.

이것이 도움이되기를 바랍니다.


1

편집을 활성화하고 계속하려면 IIS Express를 실행하십시오. 로컬 ISS 또는 외부 호스트에서 작동하지 마십시오.


1

VS 2019를 16.4.3으로 업그레이드하고 많은 두통을 일으킨 이후로 성가신 문제가 발생했습니다.
마지막으로이 문제를 해결했습니다.

1. 디버깅 중지
2. "Solution Explorer"에서 솔루션을 선택합니다.
3. 속성 창에서 "활성 구성" 속성을 "Release | Any CPU" 에서 "Debug | Any CPU"로 변경합니다.
4 디버그> 옵션> 일반에서 편집하고 계속하기 확인란을 선택

합니다. 저에게 효과적이었고 여러분에게도 효과가 있기를 바랍니다.



0

링크 된 클래스 파일에서 이런 일이 발생했습니다. 나머지 프로젝트에서는 E & C를 허용했지만 연결된 파일을 편집하는 동안 동일한 오류가 발생했습니다. 해결책은 연결된 파일을 자체 프로젝트로 나누고 프로젝트를 참조하는 것입니다.


0

나는 같은 문제에 직면했다. 내 문제는 파일을 수정할 수는 있지만 다른 파일은 수정할 수 없다는 것입니다 (둘 다 같은 프로젝트에 있음). 나중에 수정할 수없는 파일도 다른 프로젝트의 일부라는 것을 알게되었습니다. 다른 프로젝트 (단위 테스트)가로드되지 않았고 지능형 VS 디버거가이 지정된 파일에 대한 어셈블리가로드되지 않았고 변경이 허용되지 않는다는 오류를 표시합니다. 얼마나 이상해!

따라서 단위 테스트 프로젝트를 언로드하고 EnC 디버깅을 계속해야했습니다.


0

웹 양식 프로젝트가 편집되지 않도록하는 솔루션에 데이터베이스 프로젝트가 있습니다.

데이터베이스 프로젝트에서 "언로드"를 클릭하면 모든 것이 멋지게 작동합니다.


0

VS2017의 경우 솔루션에서 .suo 파일을 제거하는 것이 도움이 될 수 있습니다. :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.