2014-01-14 2 views
0

저는 C# WinForms 응용 프로그램을 작성하고 있습니다. 특정 작업을 수행하기 위해 제 3 자 dll (SDK)을 참조합니다. 나는이 dll이 클라이언트 컴퓨터에 설치 될 것으로 기대한다.타사 dll 참조로 응용 프로그램을 처리하는 방법

이제 버전 1을 참조로 사용하고 클라이언트에 버전 1이 설치되어 있습니다. 응용 프로그램이 작동합니다.

나중에 클라이언트가 버전 2로 업그레이드 한 경우 더 많은 버전 1 DLL이 없기 때문에 내 응용 프로그램이 작동하지 않습니다.

응용 프로그램을 어떻게 코딩합니까? 제 3 자 dll의 각 버전마다 하나씩? 또는 더 좋은 방법이 있습니까? (SDK는 이전 버전과 호환 가능)

답변

4

app.config에 어셈블리 바인딩 리디렉션을 추가 할 수 있습니다. 이런 식으로 뭔가 :

<dependentAssembly> 
    <assemblyIdentity name="someAssembly" 
     publicKeyToken="32ab4ba45e0a69a1" 
     culture="en-us" /> 

    <bindingRedirect oldVersion="7.0.0.0" newVersion="8.0.0.0" /> 
</dependentAssembly> 

this link

+0

1을 참조하십시오. "3rd party SDK"가 업그레이드보다 사용되기를 기대한다면,이 정책을 machine에 지정하십시오 ... 아니면 적어도 SDK 클라이언트가 새 버전을 처리하는 방법을 알게하십시오 ... OP가 이러한 정보를 얻지 못 했으므로 이전 버전과의 호환성은 너무 낙관적 일 수 있습니다 ... –

+0

내 응용 프로그램이 설치된 SDK 버전보다 새로운 경우에도이 핸들이 작동합니까? – billboard

+0

@billboard - 응용 프로그램의 버전을 확인하지 않습니다. 기본적으로 SDK 어셈블리의 _oldVersion_에 바인딩하려는 모든 요청은 SDK 어셈블리의 _newVersion_로 리디렉션됩니다. 내 생각에 새 버전이 이전 버전과 호환되면 작동해야합니다. –

관련 문제