2010-04-21 4 views

답변

12

섀도 복사본은 참조하는 어셈블리 복사본을 만듭니다.

이 이유는 .Net (더 정확하게는 Windows)이로드 된 프로세스 내에서 어셈블리를 언로드 할 수 없기 때문입니다. 이 때문에 파일이 OS에 의해 잠겨 있기 때문에 전체 프로세스를 종료하지 않고 어셈블리를 교체 할 수 없습니다.

그림자가있는 경우 .Net 실제로 클래스를로드 할 때 원본 .dll 파일과 섀도 복사본 (아무도 신경 쓰지 않는) 만 대체 할 수 있습니다. 잠긴 상태로 유지됩니다.

일부 환경 (예 : 일부 웹 응용 프로그램의 새 버전을 실행하기 위해 서버를 완전히 종료하지 않으려는 웹 서버)에서는 특히 중요합니다.

+0

깔끔하게 설명해 주셔서 감사합니다. – Ybbest