종속 어셈블리의 여러 버전이 괜찮다는 것을 어떻게 나타낼 수 있습니까?

StackOverflow https://stackoverflow.com/questions/54546

  •  09-06-2019
  •  | 
  •  

문제

어셈블리 A와 B는 개인적으로 배포되고 강력한 이름을 갖습니다.어셈블리 A에는 어셈블리 B에 대한 참조가 포함되어 있습니다.어셈블리 B에는 두 가지 버전이 있습니다.B1과 B2.이상적으로는 이 정보를 어셈블리 자체에 통합하여 어셈블리 A가 B1이나 B2에 바인딩될 수 있음을 나타낼 수 있기를 원합니다.내 옵션은 무엇입니까?

저는 버전 관리 정책과 이것이 GAC에 적용되는 방식에 어느 정도 익숙하지만 GAC에 있는 이러한 어셈블리에 의존하고 싶지 않습니다.

도움이 되었습니까?

해결책

강력한 형식의 라이브러리의 특정 버전이 다른 버전보다 선호되어야 함을 .Net Framework에 나타낼 수 있는 여러 위치가 있습니다.이것들은:

  • 게시자 정책 파일
  • machine.config 파일
  • app.config 파일

이 모든 방법은 "<바인딩리디렉션>" .Net Framework에 어셈블리의 버전 또는 버전 범위를 특정 버전에 바인딩하도록 지시할 수 있는 요소입니다.

다음은 버전 2.0에서 버전 2.5까지 어셈블리의 모든 버전을 바인딩하는 데 사용되는 태그의 간단한 예입니다.

<assemblyBinding>
    <dependantAssembly>
        <assemblyIdentity name="foo" publicKeyToken="00000000000" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0 - 2.0.0.0" newVersion="2.5.0.0" />
    </dependantAssembly>
</assemblyBinding>

자세한 내용이 많으니 꼭 읽어보시면 좋을 것 같아요 MSDN에서 어셈블리 버전 리디렉션 귀하의 경우에 가장 적합한 방법을 결정하십시오.

다른 팁

app.config 파일에서 버전 정책을 설정할 수 있습니다.또는 다음을 호출하여 이러한 어셈블리를 수동으로 로드할 수 있습니다. Assembly.LoadFrom() 이 작업이 완료되면 어셈블리 버전은 고려되지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top