Language/C# WPF

[C#] .net 혼합모드 어셈블리 런타임의 버젼 오류 해결 및 app.config 추가방법

멱군 2023. 12. 5. 17:41

C# 개발자들이 종종 직면하는 문제 중 하나는 혼합 모드 어셈블리 관련 버전 오류입니다. 특히 .NET Framework 버전이 일치하지 않을 때 이러한 문제가 발생합니다. 이 글에서는 "혼합 모드 어셈블리는 런타임의 버전 'v1.1.4322'에 대해 빌드되며 추가 구성 정보 없이 '4.0' 런타임에 로드할 수 없습니다"라는 오류의 원인을 분석하고, app.config 파일을 추가하여 해결하는 방법을 상세히 설명합니다.

 

 

오류 원인 분석

이 오류 메시지는 .NET Framework 버전 간의 호환성 문제에서 기인합니다.혼합 모드 어셈블리는 하나의 어셈블리에 네이티브 코드와 관리 코드가 혼합된 것을 말합니다. 이 경우, 오래된 버전(예: v1.1.4322)으로 빌드된 어셈블리가 새로운 버전(예: v4.0)의 .NET Framework에서 실행될 때 발생합니다. 즉, 구 버전의 어셈블리가 새로운 런타임 환경에서 적절한 지원을 받지 못해 오류가 발생하는 것입니다.

 

해결 방법: app.config 파일 추가

이 문제를 해결하는 가장 간단한 방법은 프로젝트에 app.config 파일을 추가하는 것입니다. app.config 파일은 응용 프로그램의 구성 설정을 정의하는 XML 파일로, .NET Framework 응용 프로그램 실행 시 사용됩니다. 이 파일을 통해 런타임 버전 호환성을 설정할 수 있습니다.

 

구성 파일 추가 절차

1. 프로젝트에서 마우스 오른쪽 클릭 > '추가' > '구성요소' 선택

 

2. '응용 프로그램 구성 파일' 선택 후 '추가'

 

3. app.config 파일 내용 작성

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

여기서 useLegacyV2RuntimeActivationPolicy="true" 설정은 구 버전의 .NET Framework 어셈블리가 .NET Framework 4 런타임에서도 호환되도록 합니다.

 

결과

app.config 파일을 위와 같이 설정하면, 구 버전의 어셈블리도 새로운 .NET Framework 런타임에서 문제없이 실행될 수 있습니다. 따라서, 앞서 언급된 빌드 오류가 해결됩니다.

app.config파일도 올려드리니 받으실 분은 받으시면 됩니다.

app.config.zip
0.00MB

 

결론

혼합 모드 어셈블리의 버전 오류는 .NET Framework 버전 호환성 문제로 인해 발생합니다. 이 문제를 해결하기 위해 프로젝트에 app.config 파일을 추가하고, 적절한 구성 설정을 통해 오류를 해결할 수 있습니다. 이 방법은 실제 개발 과정에서 매우 유용하며, .NET Framework에서 버전 충돌이 일어날 때 이와 같은 방법으로 진행하면 대부분 해결 될 꺼에요.