关于我能否使默认AppDomain使用某些程序集的影子副本?,它描述了一种工作解决方案,可以在默认AppDomain中激活特定目录的影子复制。
基本上,它建议使用以下简单方法:
AppDomain.CurrentDomain.SetShadowCopyPath(aDirectory);
AppDomain.CurrentDomain.SetShadowCopyFiles();
但由于这里使用的方法被标记为过时,我想知道现在实现相同功能的正确方法。警告信息提示:
请调查使用AppDomainSetup.ShadowCopyDirectories的方法
一个AppDomain有一个名为SetupInformation
的成员,这可能会带您到这个简单的实现。
AppDomain.CurrentDomain.SetupInformation.ShadowCopyDirectories = aDirectory;
AppDomain.CurrentDomain.SetupInformation.ShadowCopyFiles = "true";
很遗憾,这没有任何效果。那么问题是,有没有一种方法可以更改当前应用程序域的AppDomainSetup以激活影子复制?
SetupInformation
创建了内部FusionStore
属性的克隆,而FusionStore
属性本身是对用于初始化当前域的实际AppDomainSetup
的引用。想法是,在初始化之后,这些属性不能再被修改(尽管我想知道为什么他们没有将它们设置为只读以表示这一点)。 - Abel