程序集exe被缓存

问题描述

我正在尝试使用反射来加载作为exe的程序集。目的是提供一种加载所有基础结构的工具,该基础结构由数据,数据访问和实用程序的各种资源组成。这样做的原因是整个基础架构的加载时间最多为90秒至120秒。因此,与其旋转基础设施的不同实例,不如将其旋转并共享给所有人。每个exe使用该基础结构,并通过在服务中进行反射将基础结构注入到exe中。第一次完成时一切都很好。我遇到的问题是,当我在exe代码中进行更改并重新编译,然后尝试使用Assembly.LoadFrom方法重新加载新程序集时,它将始终加载第一个程序集而不是新程序集。因此很明显,该服务会缓存第一个程序集,并且每次我尝试重新加载新的程序集时,它都会使用较旧的程序集。我在.net 4.8

有什么想法吗?

 public static dynamic CreateObjectFromAssembly(string assemblyLocation,string type,object[] parameters)
    {
        Assembly sampleAssembly = null;
        AssemblyAccessor.LoadAssembly(assemblyLocation,ref sampleAssembly);
        return CreateObjectFromAssembly(sampleAssembly,type,parameters);
    }

    public static dynamic CreateObjectFromAssembly(Assembly sampleAssembly,object[] parameters)
    {
        dynamic result = null;
        if (sampleAssembly != null)
        {
            Type foundOne = sampleAssembly.GetTypes().Where(x => x.FullName.Equals(type)).FirstOrDefault();
            if (parameters == null)
                result = Activator.CreateInstance(foundOne);
            else
                result = Activator.CreateInstance(foundOne,parameters);
        }

        return result;
    }

public static void LoadAssembly(String assemblyLocation,ref Assembly SampleAssembly)
    {
        try
        {
            SampleAssembly = Assembly.LoadFrom(assemblyLocation);
        }
        catch(Exception e)
        {

        }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...