Aspnetcore下面服务器热更新与配置热加载

Asp.net的热更新方案Appdomain在aspnetcore中不被支持了

新的方案如下:    

 配置文件更新选项

  reloadOnChange = true

   var configurationBuilder = new ConfigurationBuilder()
         .SetBasePath(Directory.GetCurrentDirectory())
         .AddJsonFile("config.json", optional: false, reloadOnChange: true)
                       .AddEnvironmentVariables();
            IConfigurationRoot configuration = configurationBuilder.Build();

            config = configuration.GetSection("Name");

把需要热更新的组件dll名称和路径写入配置文件

使用二进制流的方式加载dll组件

      var name = $"{Directory.GetCurrentDirectory()}/{config.Value}";
      using (FileStream fs = new FileStream(name, FileMode.Open, FileAccess.Read))
            {
                var alc = AssemblyLoadContext.Default;
                var asm = alc.LoadFromStream(fs);
                var types = asm.GetTypes();

                var obj = Activator.CreateInstance(types[0]) as ITest;
                obj.Test();
            }

每次更新时,需要变更dll名称

同时更改config.json的配置项

重新加载即可

 

转载于:https://www.cnblogs.com/Czbb/p/9842137.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值