2016-06-27 4 views
1

VB에서 C# 구성 요소로 작성된 솔루션이 있습니다. 이 솔루션은 2 개의 외부 출처의 일부 라이브러리를 사용합니다. 나는이 프로젝트를 몇 달 동안 아무런 문제없이 작업 해왔다. 내 시스템이나 구성을 변경 한 특정 사실을 확인할 수는 없습니다. 이전 코드를 새 라이브러리 호출로 옮겨 코드를 진행하는 중이었습니다. 새로운 라이브러리 호출은 코드의 섹션을 변경하고 해당 지점으로 테스트 할 수 있도록 전체 재 작성이 필요합니다. 금요일 아침부터 Visual Studio 2013 디버거는 더 이상이 솔루션에서 로컬 변수를 인식하거나 표시하지 않습니다. 지역 창에 나타나는 것은 나 아래에 있습니다. 코드가 작동하고 특정 지점에서 변수 값을 확인하기 위해 텍스트 로그 파일에 쓰지만 디버거가 눈이 멀어졌습니다. 감시에 이러한 로컬 변수를 추가 할 때 "선언되지 않았습니다. 보호 수준으로 인해 액세스 할 수 없습니다."Visual Studio 2013 로컬 변수가 디버거에 표시되지 않습니다.

  • 온라인 보면서 내가
  • 는 빈과 OBJ 폴더를 삭제 성공하지 발견 된 몇 경기를 시도하고이 솔루션은 더으로 재 구축했다 :

    단계 나는 영구적 인 성공을 지금까지 찍은 성공

  • 나는 이 프로젝트를 다시 빌드 않았고 문제가 다시
  • 나타나 처음부터 솔루션, 기본 파일 복사 및 솔루션 (몇 시간 근무) 프로젝트를 재건 할 때까지 다시
  • 은 5 팩으로 업데이트되었으며 성공하지 못했습니다.

이전 프로젝트를 열어 확인했습니다. 디버거는 잘 실행되고 변수를 보여줍니다. 그것은 분명히 재건 과정에서 일어나는 일입니다.

도움을 주시면 감사하겠습니다.

감사

업데이트 : 좀 더 명확하게 상황을 조금 설명 해보자.

나는 내가 개발하여 일부 고객에게 판매하는 응용 프로그램을 보유하고 있습니다. 버전 1은 여러 위치에 설치되어 실행 중입니다. VB로 작성되었으며 특정 통합 프로세스에 대해 구형 COM 라이브러리를 사용합니다.

공급 업체가 COM 라이브러리를 폐기하고 있습니다. 새로운 라이브러리는 C#에 있습니다.

전체 응용 프로그램 (솔루션)의 새 복사본을 만들고 새 C# 라이브러리를 가져 왔습니다. 나는 새로운 코드를위한 코드로 이전 코드를 대체하고있다. 나는 솔루션을 재 컴파일했고 모든 것이 디버그에서 잘 돌아갔다.

새 호출에 사용 된 개체가 완전히 다르고 제한된 문서가 있으므로 코드 섹션을 업데이트하고 해당 지점을 테스트하십시오. "모든 파일 저장"을 할 때마다 프로젝트를 다시 빌드하고 변경 사항을 테스트하십시오. 모든 것이 며칠 동안 잘 작동했습니다. 금요일 아침에 저는 더 많은 변경 작업을 시작했고 이상한 오류가있었습니다. 시스템이 특정 변수에 대한 적절한 값을 얻지 못했습니다. 디버거가 WATCH 창에서 확인하러 갔을 때 평가할 수 없다고했습니다. 뭔가 끊어진 걸로 알았고 모든 것을 닫고 컴퓨터를 재부팅했습니다. 나중에 다시 시도했을 때 같은 문제가 발생했습니다.

몇 시간 동안 성공하지 못해 VS를 종료하고 "OLD"폴더의 이름을 바꾸고 이전 버전의 솔루션을 다시 만들었습니다. 즉시 모든 것이 잘 보였습니다. 나는 변화와 테스트를하기 시작했다.내가 재건축 할 때마다, 모든 것이 마지막 변화까지 잘 보였다. 나는 다시 여기있다.

코드는 내가 업데이트 한 시점까지 정상적으로 작동합니다. 유일한 문제는 디버거 창이 올바르게 작동하지 않는다는 것입니다. 변수가 하위 변수 외부의 클래스 수준에서 선언되면 해당 변수를 볼 수 있습니다. 디버거가 눈이 멀게되는 유일한 변수는 실행중인 Sub 내의 로컬 변수입니다.

이 문제로 다른 사람을 찾고 몇 가지 항목 만 발견했습니다. 나는 제안을했지만 기쁨은 없었습니다. 나는 임시적으로 잠수함 바깥의 변수를 정의해야하므로 디버깅하는 동안 변수를 볼 수 있습니다.

나는 VS 2013 업데이트 오전 5

나는이 문제를 얻을 VS 2015로 이동해야합니까?

귀하의 시간과 협조에 다시 한 번 감사드립니다.

답변

0

내가 마지막으로 재구성 작업을 수행 한 이후로 Visual Studio 버전을 변경하지 않았다고 가정합니다.

recreated solution from scratch, copied over base files and rebuilt solution and project (which worked for a few hours), until I did a rebuild project and problem appeared again 

이것을 바탕으로 처음부터 새로 만들면 모든 작업이 올바르게 완료 될 때까지 작동합니까? 그러나 기본 파일을 여전히 복사하고 있습니다. 그리고 마지막으로 재 빌드가 지역 창을 망칠 필요가 없기 때문에 새 라이브러리 호출이 있습니다. 그래서 그 중 하나가 거의 확실하게 범인입니다.

라이브러리 호출은 사용자의 포스트 시작을 기반으로 변경된 것 같습니다. 이전 코드로 돌아가 다시 빌드하면 고칠 수 있습니까? 이를 가정하면 라이브러리 호출이 중단 될 때까지 라이브러리 호출을 한 번에 하나씩 두십시오.

이전 코드로 돌아가서 수정하지 못하면 이전 코드로 처음부터 만들고 기본 파일을 복사하고 다시 작성하십시오. 문제가 해결되면 새 라이브러리 호출을 한 번에 하나씩 추가하고 중단 될 때까지 각각 다시 빌드하십시오.

그래도 문제가 해결되지 않으면 변경된 사항을 자세히 파악해야합니다.

기본 파일을 복사 할 수 있으므로 문제가되는 경우 제거 할 수 있습니다. 기본 파일 대신 완성품으로 작동하지 않지만 디버깅 할 수있는 자리 표시자를 사용할 수 있습니까? , 재 구축, 다시 디버그하여 문제가 그들 중 하나와 관련이 있는지 확인하십시오. 기본 파일의 날짜를 확인하고 마지막으로 다시 빌드 한 이후로 파일이 변경되지 않았는지 확인하십시오.

동시에 할 수있는 일은 동료가 자신의 컴퓨터에서 다시 작업을 수행하고 같은 문제가 발생했는지 확인하는 것입니다. 그것은 (거의) 당신의 구성/프로그램 손상 문제 일 가능성을 완전히 제거합니다. 또는 파일과 코드를 업로드 할 수있는 무료 vb.net 컴파일러가 온라인에 있습니다. 그게 당신의 프로그램 및/또는 데이터의 감도의 구성 요소로 인해) 당신을 위해 실용적이 될지 모르겠다. 그리고 거기에 C# 코드가있는 곳을 시도한 적이 없지만 나는 생각하지 않을 것이다. 그것은 문제가 될 것입니다.