appdomain中的ShadowCopyFiles属性有什么作用?

时间:2010-04-21 23:08:19

标签: .net shadow-copy

我知道当你设置为true时,它会将文件复制阴影。但是阴影复制是什么意思以及为什么我们需要阴影复制文件?

1 个答案:

答案 0 :(得分:14)

卷影副本会创建您正在引用的程序集的副本。

这样做的原因是.Net(更准确地说是Windows)一旦加载就无法在进程内卸载(某些)程序集。因此,您无法在不关闭整个过程的情况下更换组件,因为该文件仍然被操作系统锁定。

但是,如果您有一个卷影副本.Net实际上使用它来加载您的类,您可以替换原始.dll文件,只有阴影副本(没有人关心)保持锁定。

这在某些环境中尤其重要(例如,您显然不希望仅关闭整个服务器以运行某些Web应用程序的新版本的网络服务器。)