해결.net framework 4.0 환경 에서 버 전이 다 르 게 컴 파일 되 지 않 는 방법 에 대한 상세 한 설명

본 논문 의 내용:1.문 제 는 2.문제 해결 3.원인 분석 최근 부서 의 개발 환경 이 모두 WIN 7+.NET framework 4+VS 2010 에 업데이트 되 었 고 신기 술 과 새로운 환경 을 체험 하여 우리 에 게 효율 을 높이 는 방식 과 방법 을 가 져 다 주 는 동시에 호환성 문제 도 가 져 왔 다.요 며칠 동안 프로젝트 여가 시간 에 SQLite 를 연구 할 때 실험 을 할 때 문제 가 발생 했 습 니 다.코드 컴 파일 이 실 행 될 때 이상 하 게 중단 되 었 습 니 다.뒤에 SQLite.dll 이 framework 2.0 환경 에서 컴 파일 되 었 고 현재 의 운영 환경 은 framework 4.0 이기 때문에 운행 이상 이 발생 했 습 니 다.그림:
앞으로 개발 과정 에서 제3자 의 구성 요 소 를 인용 할 수 있 기 때문에 오래된 framework 버 전에 서 컴 파일 된 것 일 수도 있 고 이런 문제 가 발생 할 수 있 기 때문에 본 고 에서 이 문 제 를 야기 하 는 원인 을 해결 방법 과 설명 을 제공 합 니 다.
관련 자 료 를 찾 아 보 았 습 니 다.stackoverflow.com 에 서 는 config 파일 에 설정 을 추가 하 는 것 을 권장 합 니 다.

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
MSDN 에서 도 이 방법 에 대해 논술 하 였 습 니 다.참고 하 십시오.http://msdn.microsoft.com/en-us/library/bbx34a2h(VS.100).aspx
그러나 이 방법 으로 컴 파일 한 후에 도 문 제 는 해결 되 지 않 았 지만 문 제 는.net runtime 환경 으로 잠 겨 있 는 문 제 를 명 확 히 할 수 있 습 니 다.

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
<requiredRuntime version="v4.0.30319" />
</startup>
재 운행,문제 해결.이번 에는 어떤 원인 으로 인 한 것 인지 알 아야 합 니까?supported Runtime 탭 은 프로그램 이 지원 하 는.framework 가 실 행 될 때의 버 전 을 구체 적 으로 설명 합 니 다.requiredRuntime 탭 은 응용 프로그램 이 1.0 버 전의 공용 언어 실행 시간 만 지원 한 다 는 것 을 구체 적 으로 설명 합 니 다.1.1 버 전이 나 뒤의 버 전 으로 컴 파일 할 경우 프로그램 은요 소 를 사용 해 야 합 니 다.메모:<슈퍼 ported Runtime>은 1.1 버 전이 나 뒤의 버 전 으로 컴 파일 된 프로그램 을 통 해 사용 해 야 합 니 다.1.0 버 전의 실행 시간 만 지원 하 는 프로그램 은을 사용 해 야 합 니 다.
CLR Runtime 버 전의 관련 자 료 를 다시 찾 아 보고 다음 CLR 실행 규칙 과 각 버 전의 관계 집계 표를 참조 합 니 다.다음 과 같 습 니 다.규칙:1.CLR 4.0 및 이상 버 전의 컴 파일 된 응용 프로그램 은 항상 응용 프로그램 이 컴 파일 된 CLR 버 전에 서 실 행 됩 니 다.2.CLR 4.0 이하 버 전의 컴 파일 된 프로그램 은 컴 파일 된 CLR 버 전에 서 우선 실행 되 며,이 버 전이 존재 하지 않 는 다 면 CLR 4.0 이하 의 최신 버 전 을 실행 합 니 다.다음 과 같이 요약 한다.
EXE 컴 파일 된 CLR 버 전 번호
기계 에 CLR 1.1 이 설치 되 어 있 습 니까?
기계 에 CLR 2.0 이 설치 되 어 있 습 니까?
기계 에 CLR 4.0 이 설치 되 어 있 습 니까?
결실
1.1
예.
상관없다
상관없다
CLR 1.1 불 러 오기
2.0
상관없다
예.
상관없다
CLR 2.0 불 러 오기
1.1
아니.
예.
상관없다
CLR 2.0 불 러 오기
1.1
아니.
아니.
예.
실패 하 다.
2.0
상관없다
아니.
예.
실패 하 다.
이로써 우 리 는 각 CLR 버 전 간 의 관 계 를 분명하게 알 수 있 게 되 었 다.
요약:마이크로소프트 는 매번 버 전 업그레이드 에 새로운 문제 가 발생 할 수 있 습 니 다.예전 에 CLRv 1.0 에서 CLRv 2.0 까지 많은 곤 혹 스 러 움 을 초래 한 적 이 있 습 니 다.너무 큰 조직 으로 인해 모든 것 을 다 갖 추 지 못 했 을 수도 있 습 니 다.앞으로 의 버 전 업그레이드 에서 빈 틈 없 는 버 전 연결 을 할 수 있 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기