2011-10-18 5 views
2

wpf 데스크탑 응용 프로그램을 .net 3.5에서 .net 4.0으로 업그레이드합니다 (대상 프레임 워크를 4.0으로 변경). 업그레이드 후 예기치 않은 동작이 나타납니다..Net 4.0으로 업그레이드 한 후 AccessViolationException이 발생했습니다.

응용 프로그램에 탭 컨트롤이 있습니다. 특정 탭을 클릭하면 다음 동작 중 하나가 발생합니다.
1. 응용 프로그램이 충돌했습니다.
2. AccessViolationException "보호 된 메모리를 읽거나 쓰려고 시도했으며, 이는 종종 다른 메모리가 손상되었음을 나타냅니다."
3. 신청 마감
4. 때때로 잘 작동합니다.

이 탭 컨트롤 문제 외에 응용 프로그램이 예기치 않게 종료되었습니다. (탭을 닫거나 창을 스크롤 할 때). Sometiems Fatalexecutionengine 예외도 발생합니다.

.Net 4.0으로 변환하기 전에 모든 것이 잘 작동했습니다.

거기에 무슨 일이 일어나는지 전혀 모른다. 이 문제를 해결하는 데 도움을주십시오.

+0

하나의 아이디어는 p/invoke 코드 중 일부가 항상 손상되었다는 것입니다. 그러나 오래된 프레임 워크의 구현 세부 사항이이를 마스크했습니다. – CodesInChaos

답변

0

모든 어셈블리를 수동으로 삭제 한 다음 새 프레임 워크로 모든 것을 다시 빌드하려고 했습니까? Visual Studio는 종종 창과 비슷하기 때문에 모든 것을 다시 실행해야합니다.

+0

시도했지만 작동하지 않았습니다. 우리가 CI 서버를 사용하여 솔루션을 구축하는 것 외에도 출력에도 동일한 문제가있었습니다. – chenk

+1

이 탭 컨트롤은 다른 탭 컨트롤과 매우 다른가요? 일부 데이터 바인딩 또는 복잡한 데이터 세트 조작이 있습니까? 어쩌면 새로운 프레임 워크에서 좀 더 최근에 뭔가 문제가있는 비표준 컨트롤이나 명령이있을 수 있습니다. 이 탭 컨트롤의 클릭 이벤트에서 실행 된 모든 코드를 주석 처리하여 충돌하지 않는 무언가를 가질 수 있도록하고 충돌이있을 때 주석 처리를 시도하십시오. –

+1

정확합니다. 이전 버전의 Icsharpcode.Texteditor가 이러한 모든 문제를 일으켰습니다. 텍스트 편집기가 첫 번째 컨트롤 애플리케이션이 중단되거나 예외가 발생하여 탭 항목 내에로드 될 때마다 그러나이 텍스트 편집기 이전에로드 된 단추와 같은 다른 컨트롤은 정상적으로 작동했습니다. 어쨌든 Icsharpcode.Texteditor는 .net 4 대상 버전을 지원하지 않습니다. ICSharpCode.AvalonEdit는 WPF 기반 텍스트 편집기로 .net 4. (ICharpCode.Texteditor의 대체품입니다.) 어쨌든 최신 버전의 Icharpcode.Texteditor를 사용하여 문제를 해결했습니다. 도와 주셔서 감사합니다. – chenk

관련 문제