다음을 통해 공유


Dynamic-Link 라이브러리 업데이트

DLL을 최신 버전으로 교체해야 하는 경우도 있습니다. DLL을 교체하기 전에 버전 검사 수행하여 이전 버전을 최신 버전으로 바꾸고 있는지 확인합니다. 사용 중인 DLL을 바꿀 수 있습니다. 사용 중인 DLL을 바꾸는 데 사용하는 방법은 사용 중인 운영 체제에 따라 달라집니다. Windows XP 이상에서 애플리케이션은 격리된 애플리케이션 및 병렬 어셈블리를 사용해야 합니다.

다음 단계를 수행하는 경우 컴퓨터를 다시 시작할 필요가 없습니다.

  1. MoveFileEx 함수를 사용하여 바꿀 DLL의 이름을 바꿉니다. MOVEFILE_COPY_ALLOWED 지정하지 말고 이름이 바뀐 파일이 원래 파일이 포함된 동일한 볼륨에 있는지 확인합니다. 다른 확장자를 제공하여 동일한 디렉터리의 파일 이름을 바꿀 수도 있습니다.
  2. 이름이 변경된 DLL이 포함된 디렉터리에 새 DLL을 복사합니다. 이제 모든 애플리케이션에서 새 DLL을 사용합니다.
  3. 이름이 변경된 DLL을 삭제하려면 MOVEFILE_DELAY_UNTIL_REBOOT MoveFileEx 를 사용합니다.

이 대체를 수행하기 전에 애플리케이션은 언로드될 때까지 원래 DLL을 사용합니다. 교체를 수행한 후 애플리케이션은 새 DLL을 사용합니다. DLL을 작성할 때 특히 DLL이 전역 상태 정보를 유지 관리하거나 다른 서비스와 통신하는 경우 이러한 상황에 대비해야 합니다. DLL이 전역 상태 정보 또는 통신 프로토콜의 변경에 대해 준비되지 않은 경우 DLL을 업데이트하려면 모든 애플리케이션이 동일한 버전의 DLL을 사용하고 있는지 확인하기 위해 컴퓨터를 다시 시작해야 합니다.