2011-04-27 4 views
0

관리되지 않는 라이브러리를 사용하는 프로그램을 작성하고 있습니다. foo.dll과 호환되지 않는 버전을 처리하는 가장 좋은 방법은 무엇입니까?.NET 관리되지 않는 라이브러리로드 : 처리 오류 상태

예 : 사용자가 프로그램을 시작하고 프로그램이 예상하는 것보다 오래된 버전의 DLL이 있습니다. 성숙한 라이브러리에서는 API 변경 사항이 자주 발생하지 않으므로 어쨌든 사용 하시겠습니까? 즉시 오류가 발생 했습니까? 사용되는 모든 관리되지 않는 DLL의 다운로드 위치로 프로그램의 리소스를 유지 관리합니까? 또는 프로젝트의 자체 폴더에 모든 DLL을 포함시키고 정확하게 해당 파일을 사용하도록 고집하는 것이 가장 좋습니다.

지금은 후자를 수행하고 새 프로젝트 버전으로 DLL을 업데이트하지만 내 소프트웨어가 내결함성이 있어야하며 실용적인 것처럼 관리하고 비보안 사용에 대한 모범 사례를 인식하지 못합니다. DLL ("사용하지 않으면 사용하지 마십시오").

답변

0

컴파일되지 않은 DLL에 컴파일 할 때 포함 된 버전 정보가 있다고 가정하면 호환 버전을 확인하기 위해 응용 프로그램로드시 System.Diagnostics의 FileVersionInfo 클래스를 사용할 수 있습니다.

호환되는 버전이 발견되지 않으면 사용자에게 경고하십시오.

http://msdn.microsoft.com/en-us/library/system.diagnostics.fileversioninfo.aspx

+0

좀 더 명확해야 - DLL 버전을 찾는 문제가 아니라. 문제는 특정 구현보다 모범 사례에 관한 것입니다. 예를 들어, 예외를 던지겠습니까? 그렇다면 어떤 예외 (사용자 정의?). 베스트 프랙티스에 대한 핸들을 얻으려고했지만 관리되지 않는 라이브러리를 다룰 때 어떤 상황을 다루는 좋은 기사를 찾을 수 없었습니다. –

관련 문제