cópia de sombra @AppDomain não está funcionando (montagens originais bloqueadas)

Aqui está uma classe pequena que estou usando para pesquisar uma lista de plugins disponíveis:

internal static class PluginDirectoryLoader
{
    public static PluginInfo[] ListPlugins(string path)
    {
        var name = Path.GetFileName(path);
        var setup = new AppDomainSetup
        {
            ApplicationBase = path,
            ShadowCopyFiles = "true"
        };
        var appdomain = AppDomain.CreateDomain("PluginDirectoryLoader." + name, null, setup);
        var exts = (IServerExtensionDiscovery)appdomain.CreateInstanceAndUnwrap("ServerX.Common", "ServerX.Common.ServerExtensionDiscovery");
        PluginInfo[] plugins = null;
        try
        {
            plugins = exts.ListPlugins(); // <-- BREAK HERE
        }
        catch
        {
            // to do
        }
        finally
        {
            AppDomain.Unload(appdomain);
        }
        return plugins ?? new PluginInfo[0];
    }
}

Opath parâmetro @ aponta para um subdiretório que contém os assemblies de plug-in a serem carregados. A idéia é carregá-los usando um AppDomain separado com a cópia de sombra ativad

Emist case, a cópia de sombra não é realmente necessária, pois o AppDomain é descarregado rapidamente, mas quando eu realmente carrego os plug-ins no próximo bloco de código que pretendo escrever, quero usar a cópia de sombra para que os binários possam ser atualizados no diretório mosca. Ativei a cópia de sombra nesta classe como teste para garantir que eu esteja fazendo o que é cert

Aparentemente, não estou fazendo o certo, porque quando interrompo o depurador na linha comentada no exemplo de código (ou seja,plugins = exts.ListPlugins()), os assemblies de plug-in originais são bloqueados pelo aplicativo!

omo estou especificando que os assemblies carregados pelo AppDomain devem ser copiados por sombra, por que eles estão sendo bloqueados pelo aplicativ

questionAnswers(1)

yourAnswerToTheQuestion