编程语言
首页 > 编程语言> > c#-加载任何版本的静态引用的.NET程序集

c#-加载任何版本的静态引用的.NET程序集

作者:互联网

我正在使用从其他产品使用.NET程序集的工具.少数程序集在我的项目中被静态引用(使用“添加引用”),因为我需要在代码中实际使用这些类型.但是我从产品的安装目录动态加载了许多其他程序集,并使用反射来动态实例化我需要的任何对象.

我不需要为我依赖的产品的每个可能版本重新编译并发布项目的单独版本.我需要的程序集的某些版本肯定会出现在应用程序的安装目录中,因此我想使用恰好要安装的程序集的任何版本.但是它可能与我在构建工具时最初使用的程序集版本不完全相同. (产品版本控制策略是这样的:产品中的所有程序集都具有相同的版本号,每个版本都会更改,即使我需要静态引用的特定程序集自上一个版本以来未更改过,还是支持100%我需要的API).

有可能实现这一目标吗?

Assembly Version redirects允许我在请求不同版本的程序集时加载该程序集的特定版本.我的情况与此相反.我想加载碰巧存在的任何版本.

解决方法:

您可以绑定到AppDomain.CurrentDomain.AssmeblyResolve事件并自己处理分辨率.

标签:net-assembly,assembly-resolution,c,net
来源: https://codeday.me/bug/20191119/2035287.html