.NET 2.0 솔루션을 .NET 3.5로 변환하기위한 함정
-
03-07-2019 - |
문제
우리는 .NET 2.0에서 3.5에서 20 개 이상의 프로젝트를 갖춘 솔루션을 동시에 Visual Studio 2005에서 2008으로 이동합니다. 동시에 MS Entlib 2.0에서 4.0으로 전환됩니다.
- Visual Studio Wizard가 우리를 위해 솔루션을 변환 할 수있는 이유가 있습니까?
- 3.5가 완전히 뒤로 2.0과 호환됩니까?
- Entlib 4.0은 2.0과 완전히 거꾸로 호환됩니까?
편집하다: 나는 이것을 썼을 때 약간 혼란 스러웠을 것입니다. 거꾸로 호환성은 의미가 있습니다. 2.0 프로젝트에 3.5로 작동하지 않는 것이 있습니까?
:)
// w
해결책
우리는 2005 년부터 2008 년까지 다소 큰 솔루션 (20 개 이상의 프로젝트)을 업그레이드했지만 실제로는 사소했습니다. 프로젝트 업그레이드 기본적으로 만. 기본 프레임 워크는 3.0/3.5 및 2.0이 모두 동일한 핵심 프레임 워크를 공유하기 때문에 여전히 동일합니다.
위에서 언급했듯이 업그레이드 중에도 프로젝트의 프레임 워크 참조를 변경할 필요는 없습니다. 실제로는 3.0/3.5로 변경하는 대신 프레임 워크를 2.0으로 남겨 두는 기본값입니다. 즉, 참조 (프로젝트 속성 페이지, 애플리케이션 테이블 "Target Framework"필드)를 변경할 때까지 3.0/3.5 기능을 활용할 수 없지만 추가 호환성이 없음을 의미합니다. 문제 (참조가 변경 될 때까지 3.0/3.5 코드를 추가하는 오류가 발생함에 따라).
TFS 2008의 새로운 기능을 간과해서는 안됩니다. TFS 2008을 사용할 수 있도록 앱을 업그레이드 할 필요는 없습니다.
1.1 ~ 2.0 전환은 훨씬 더 고통 스러웠습니다 ...
다른 팁
나는 Visual Studio 2005에서 2008에서 마법사로 여러 프로젝트를 업그레이드했으며, 그들은 모두 고통스럽지 않았습니다 (음 ... 그 C ++ 짐승을 제외하고는.하지만 당신은 .net에 대해 이야기하고 있습니다).
.NET 버전을 업그레이드 할 필요가 없습니다. Visual Studio 2008은 .NET 2.0, 3.0 및 3.5를 지원합니다. 그러나 3.5는 어쨌든 동일한 CLR에 위치하고 있으며 일부 추가 라이브러리이기 때문에 거꾸로 호환됩니다. 그리고 "오래된"라이브러리는 동일하게 유지됩니다.
나는 Entlib에 대해 모른다.
왜 단위 테스트를 시도하고 실행하지 않습니까? :)
- Visual Studio Wizard가 우리를 위해 솔루션을 변환 할 수있는 이유가 있습니까?
아니.
- 3.5가 완전히 뒤로 2.0과 호환됩니까?
아니요. 3.5에는 기본적으로 거꾸로 포트가 아닌 새로운 기능이 있습니다. 그리고 (IIRC) 2.0에서 3.5까지의 일부 감가 상징이 있습니다.
- Entlib 4.0은 2.0과 완전히 거꾸로 호환됩니까?
나는 그렇게 생각하지 않습니다. 3.5는 요구 사항으로 나열됩니다.
백업을하고, 마법사를 실행하고, 무슨 일이 일어나는지 확인하십시오. 그러한 청크 프로젝트에는 시간이 걸릴 수 있지만 예상대로 구축/실행되는지 알 수있는 위치에있을 것입니다.
Caching Application 블록을 사용하면 Entlib에서 4.0에서 4.0에서 업그레이드했을 때 다음과 같은 소스 코드 변경을 관찰했습니다.
- 2.0에서는 캐시 관리자가 사용됩니다
CacheManager cache = CacheFactory.GetCacheManager()
. - 4.0에서는 교체해야합니다
CacheManager
~와 함께ICacheManager
또는 컴파일하지 않습니다.
또한 예외 처리 블록에 대한 자신의 예외 포맷터 클래스를 작성하는 경우 :
- 2.0에서 서명으로 하나의 생성자를 정의해야합니다.
(TextWriter, Exception)
. - 4.0에서는 더 이상 사용되지 않으며 서명으로 두 번째 생성자를 정의해야합니다.
(TextWriter, Exception, Guid)
.
Entlib 3.1에서 4.0에서 마이그레이션 할 때는 깨진 변경이 없어야합니다.
"공개 API에 대한 변화는 없다. 그것은 EL4의 설계 목표 중 하나였다. EL4는 .NET3.5를 필요로한다는 것을 기억하십시오.
--grigori "
(Grigori는 Entlib의 프로그램 관리자입니다)
그래도 2.0 ~ 3.1에 대해 잘 모르겠습니다. 내일 올바른 사람들 @ p & p를 찾을 수 있다면 이것을 업데이트하겠습니다.
ade
.NET 2.0에서 .NET 3.5로 마이그레이션하는 방법에 대한이 링크를 확인하십시오.
http://codingreview.blogspot.com/2009/09/how-to-migrate-your-application-from.html