본문 바로가기

Development/DevExpress

DevExpress 수동 버전업시 svg(svgImage) 예외 처리

수동 또는 자동으로 DevExpress 버전을 올릴때 해당 프로젝트에서 실행시 사용중인 svg 이미지 파일부분이

모두 아래와 같은 에러를 발생한다.

 

DevExpress 버전업후 실행시 svgImage Expcetion 메세지

 

자세히보면 아래의 메세지로 표시되며 

 

System.InvalidCastException: '[A]DevExpress.Utils.Svg.SvgImage을(를) [B]DevExpress.Utils.Svg.SvgImage(으)로 캐스팅할 수 없습니다. A 형식은 'DevExpress.Data.v19.1, Version=19.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a' ('Default' 위치, 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.Data.v19.1\v4.0_19.1.7.0__b88d1754d700e49a\DevExpress.Data.v19.1.dll' 컨텍스트)에서 만들어집니다.. B 형식은 'DevExpress.Data.v20.1, Version=20.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a' ('Default' 위치, 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.Data.v20.1\v4.0_20.1.6.0__b88d1754d700e49a\DevExpress.Data.v20.1.dll' 컨텍스트)에서 만들어집니다..'

 

간단히 말해 'svg는 현재 버전업된 버전에서 만들어지는게 아니라서 표시할 수 없습니다.' 라고 한다.

 

이럴경우 해당 Resources의 종속 버전을 변경하면 아래의 문제는 해결된다.

 

해당 프로젝트 폴더 내에 Properties 폴더에서 Resources.resx파일을 에디터로 연다.

 

프로젝트폴더\Properties\Resources.resx 파일

 

해당 파일내에 아래와 같이 이전 버전의 svg 파일값이 기록되어 있다.

  - 저의 경우 V19.1.7 -> V20.1.6으로 변경 작업 중입니다.

버전이 표시된 부분을 원하는 버젼의 값으로 변경후 저장하면 다음 컴파일부터 자동으로 변경한 버전이 적용된다.

Resources.resx 파일내에 svg 파일 버젼을 변경전
Resources.resx 파일내에 svg 파일 버젼을 변경후