문제

Visual Studio 2008 내에서 디버깅하는 동안 내 코드를 완전히 잠글 수있는 방법이 있는지 궁금했습니다. 코드 문서는 64 비트 응용 프로그램으로 실행될 때 자동으로 잠금을 선호합니다. 그러나 나는 대부분의 코딩을 사용하여 Excel을위한 추가 인물을 32 비트입니다. 결과적으로 'anycpu'를 대상으로하더라도 VS 호스트는 32 비트 프로세스 내에서 실행되고 있으므로 소스 코드가 ~ 아니다 코드가 Visual Studio에서 호스팅되는 동안 잠겨 있습니다.

도구> 옵션> 디버깅> 편집 및 계속으로 이동 한 다음 '활성화 편집 및 계속'확인란을 선택 취소하여 편집을 끄고 계속할 수 있습니다. 그러나 코드를 완전히 잠그지는 않습니다. 이것은 코드의 모든 편집이 현재의 실행하지만 마우스 클릭이나 키 스트로크가 실제로 코드를 변경하는 것을 방지하지는 않습니다.

다시 말하지만 64 비트 응용 프로그램으로 작업 할 때는 이것이 발생하지 않습니다. 코드는 완전히 잠겨 있습니다. 나는 적어도 몇 가지 이유로 코드가 완전히 잠긴 것을 선호합니다.

  1. 디버깅하는 동안 실수로 키 등을 때릴 수 있습니다. 드물지만 문제입니다.

  2. 많은 자동 테스트는 SendKeys를 통해 사용자 인터페이스를 구동합니다. 그러나 디버거를 사용하여 이러한 테스트를 진행할 때 때때로 일부 측면에는 SendKeys가 포함된다는 것을 잊을 수 있습니다.

위의 문제 #2에서, 단위 테스트는 실패합니다. 괜찮습니다. 나쁘지만 모든 키 스트로크를 코드 모듈로 전송하고 코드를 파괴하는 것은 완전히 용납 할 수 없습니다.

여기에 아이디어가 있습니까? 32 비트 CPU에 대해 컴파일하는 동안 Visual Studio에서 호스팅 된 상태에서 실행할 때 코드를 완전히 잠글 수 있습니까?

이 문제에 대한 일부 관련 게시물이지만 그 중 어느 것도 직접적으로 다루지 않습니다.

도움이나 아이디어에 미리 감사드립니다 ...

마이크

도움이 되었습니까?

해결책

여기 내가 생각해 낼 수있는 최선이 다릅니다. 작동하지만 취하고 싶지 않은 몇 가지 단계가 있습니다.

기본적 으로이 기술은 응용 프로그램을 실행할 때 프로젝트 파일을 읽기 전용으로 설정 한 다음 응용 프로그램이 종료되면 다시 쓰기 가능한 것으로 설정하는 것입니다.

그러나 VS2K8에서 기본적으로 파일을 읽기 전용으로 설정하면 파일을 편집 할 수 있습니다. 도구> 옵션> 환경> 문서에서 "읽기 전용 파일 편집 허용 ..."설정을 먼저 끄어야합니다.

둘째, 레지스트리에 다음 키를 DWORTY로 추가하고 그 값을 1로 설정해야합니다.

HKCU\Sofware\Microsoft\Visual Studio\9.0\Source Control\UncontrolledInMemoryEditDialogSuppressed  

이것 아직 완전히 작동하지 않습니다. 그런 다음해야 할 일은 해당 프로젝트의 소스 컨트롤을 시각 소스 안전으로 설정하는 것입니다. (<- 이것은 당신이 마음에 들지 않을 것이라고 가정하는 단계입니다.)

그런 다음 vs2k8을 다시 시작하십시오.

이 시점에서 파일 중 하나를 읽기 전용으로 설정하면 Visual Studio 에서이 파일을 전혀 편집 할 수 없습니다. 시도하면 컴퓨터의 예외 음악을 재생합니다.

이제 앱을 실행할 때 파일을 읽으려면 구축 후 프로세스를 설정하여이를 수행하십시오. 쉽습니다.

더 어려워지면 앱이 실행되면 쓰기 가능한 것으로 다시 설정하는 것입니다. 가장 간단한 솔루션은 아마도 배치 파일 바로 가기 일 것입니다.

다른 팁

Visual Studio 2005에서 사용하는 트릭은 다음과 같습니다 (Visual Studio 2008에서 테스트 할 기회는 없지만 작동해야합니다).

  • 실행 가능한 어셈블리의 속성을 엽니 다
  • 가십시오 디버그
  • 을 체크하다 관리되지 않는 코드 디버깅을 활성화합니다 확인란

중단 점에 도달하더라도 코드 문서는 잠긴 상태를 유지해야하며 변경하려는 시도는 팝업을 유발해야합니다. "관리되지 않은 디버깅이 활성화 된 경우 변경 사항이 허용되지 않습니다.".

이봐 요 - 코드를 완전히 잠그는 데 도움이되지 못해요 - 반대의 욕망이 있습니다. 디버그 중에 완전히 잠금을 해제하려면 두 번째 문제를 도와 드릴 수 있습니다.

키를 보내기 전에 활성 창을 확인하고 활성 창이 대상 사이트 이외의 경우 해당 창이 해당 창을 반환 할 때까지 테스트 실행을 일시 중지하는 것이 좋습니다.

나는 그것이 당신이 원하는 솔루션이 아니라는 것을 알고 있지만 다른 유사한 문제를 예방하는 것은 아프지 않을 것입니다.

행운을 빌어 요!

아담

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top