Visual Studio2022 & Devexpress 22 개발환경 업그레이드
회사에서 개발환경 라이센스 이슈로 업그레이드가 결정이되었다.
1. 스펙
변경 전 | 변경 후 |
Visual Studio 2010 Devexpress 13.2 .NET Framework 4.0 |
Visual Studio 2022 Devexpress 22.1 .NET Framework 4.6 (최소 4.5.2+) |
2. 결과
.NET Framework 4.6 버전으로 버전 업 후, 별도의 추가 작업 없이 업그레이드 버전 배포가 가능하다.
3. 설치
- 개발 툴 설치
1). net설치 https://dotnet.microsoft.com/en-us/download/dotnet-framework/net46
2) visual studio2022 설치 https://visualstudio.microsoft.com/ko/vs/whatsnew/
3) devexpress 22.1설치(회원가입 후 진행, 무료 버전 30일 사용가능)
https://www.devexpress.com/subscriptions/new-2022-1.xml - SVN설치
1) Visual Studio 실행 > 상단의 툴 바 > 확장 > 확장관리
2) Ankhsvn for Visual Studio 2022 설치
3) 소스 제어 플러그인 AnkhSVN설정하는 법 : 상단 툴바 > 확장 > Source Control
4) SVN을 사용하여 테스트 솔루션 체크아웃
4.NET Framework 프로젝트 버전 변경 방법
1) 프로젝트 선택 후 오른쪽클릭 > 속성 > 대상 프레임워크 .net framework 4.6으로 변경 후
전체 디버깅 è 디버깅하면 오류 발생
2) 프로젝트 닫고, ProjectConverter.exe를 사용하여 패키지 devexpress 업그레이드 진행
5. Devexpress 버전 변경
1) ProjectConverter.exe 사용
C:\Program Files\DevExpress 22.1\Components\Tools\Components\ 하단에 위치
2) 컨버트 전 반드시 프로젝트 .net framework 최소사항 확인(22.1.5 기준 net 4.5.2 +).
3) 본 프로젝트 외, 참조 된 공통 프로젝트의 .net framework도 같이 변경되어있는 지 확인
4) Devexpress 업그레이드 후, 패키지를 열어 전체 디버깅을 합니다. => 오류 나는 부분 수정 필요
5) 각 프로젝트 별 참조 DLL을 확인 (+ 서브파티 DLL 경로도 업그레이드 log4net.dll / Newtonsoft.Json.dll)
6. 배포 테스트
1) .NET 4.6 미만 환경(기존)
로그인 시에 컴퓨터에 설치된 .NET Framework 버전을 확인하여 신규파일을 업그레이드 받는다.
4.6 미만 => 기존 버전 유지
4.6 이상 => 2022 업그레이드된 실행파일 다운로드
2) .NET 4.6 이상 환경에서 실행이 안 되는 경우
- 포스 포맷(win10기준 .net 4.7까지 설치된 상태)
- 테스트 솔루션 설치파일로 설치 후 로그인
- 업그레이드 파일 다운로드 하였으나 => 오류발생 "C:\Comware\CenterNet.exe"에 대한 활성화 컨텍스트를 생성하지 못했습니다. manifest 또는 정책 파일 "C:\Comware\CenterNet.exe.Config"의 34줄에서 오류가 발생했습니다. 잘못된 Xml 구문입니다.
3) 해결방법
- .net framework 4.6 이상 버전인지 확인 한다.
- C:\Comware > devexpress dll을 넣어준다.
- C:\Comware > third party dll을 넣어준다.( log4net.dll/ Newtonsoft.Json.dll)
- 정상실행확인
- 안될 경우 CenterNet.exe.config 파일의 NET버전을 확인해볼 것!
7. Window10 .net framework 버전 확인방법
cmd> power shell > Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name version -EA 0 | Where { $_.PSChildName -Match '^(?!S)\p{L}'} | Select PSChildName, version
8. NET Framework 버전확인(소스코드로 확인)
설치된 .NET Framework 버전 확인 - .NET Framework
코드, regedit.exe 또는 PowerShell을 사용하여 Windows 레지스트리를 쿼리하는 방법으로 컴퓨터에 설치된 .NET Framework 버전을 검색합니다.
learn.microsoft.com
using Microsoft.Win32;
private bool checkNetVersion() {
bool result = false;
const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
{
if (ndpKey != null && ndpKey.GetValue("Release") != null)
{
if ((int)ndpKey.GetValue("Release") >= 393295) { //4.6 dㅣ상이면 다운로드
return true;
}
}
}
return result;
}
string CheckFor45PlusVersion(int releaseKey)
//{
// if (releaseKey >= 528040)
// return "4.8 or later";
// if (releaseKey >= 461808)
// return "4.7.2";
// if (releaseKey >= 461308)
// return "4.7.1";
// if (releaseKey >= 460798)
// return "4.7";
// if (releaseKey >= 394802)
// return "4.6.2";
// if (releaseKey >= 394254)
// return "4.6.1";
// if (releaseKey >= 393295)
// return "4.6";
// if (releaseKey >= 379893)
// return "4.5.2";
// if (releaseKey >= 378675)
// return "4.5.1";
// if (releaseKey >= 378389)
// return "4.5";
// // This code should never execute. A non-null release key should mean
// // that 4.5 or later is installed.
// return "No 4.5 or later version detected";
}