Что делает свойство ShadowCopyFiles в appdomain?

Я знаю, когда вы установите значение true, он будет теневое копирование файлов.Но что означает теневое копирование и почему нам нужно теневое копирование файлов?

1 ответов


Shadow copy создает копию сборки, на которую вы ссылаетесь.

причина этого в том, что .Net (точнее Windows) не может выгружать (некоторые) сборки в процессе после загрузки. Из-за этого вы никогда не сможете заменить сборку без завершения всего процесса, потому что файл остается заблокированным ОС.

однако, если у вас есть теневая копия .Net фактически использует это для загрузки ваших классов, вы можете заменить оригинал .dll-файл и только теневая копия (о которой никто "не заботится") остается заблокированной.

Это особенно важно в некоторых средах (например, веб-сервер, где вы, очевидно, не хотите закрывать весь сервер только для запуска новой версии некоторого веб-приложения).