Development/DevExpress

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

가비닷 2020. 8. 5. 14:30

수동 또는 자동으로 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 파일 버젼을 변경후