다음을 통해 공유


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

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

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

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

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