相关疑难解决方法(0)

如何使用程序集绑定重定向忽略修订版本和内部版本号

我在C#中有几个.NET应用程序,以及一个用于访问数据库的API.我想将所有版本的API放在数据库中,让他们选择最高版本和内部版本号,但要坚持使用它们构建的主要和次要编号.基本上,当我引用API时,1.2.3.4我希望引用读取,1.2.*.*以便应用程序只需要提取,1.2.3.5我看到我可以使用XML配置文件执行此操作.我宁愿让它遵守.类似于发布策略,但没有额外的文件.我可以满足于此.另一个问题是我看到的所有解决方案都将一个版本重定向到另一个特定版本,而不仅仅是更新版本.

我该怎么做呢?

有人能指出我对出版商政策的信息来源吗?

.net assemblies reference

13
推荐指数
2
解决办法
1万
查看次数

在运行时加载2个版本的程序集

在过去的几周里,我一直试图破解这个,但还没有找到一个好的解决方案; 希望我能在这里得到答案.

我有两个程序集(ZA和ZB),它们都指向一个公共项目/ dll(ZC)但可能在不同的版本上(即相同的dll名称,相同的名称空间,某些类可能不同).然而,如果一个程序集在运行时由另一个程序集加载(例如A加载B),那么每个程序集都可以自行工作,那么我就无法使它工作.需要一些帮助.

这是设置:

  • ZA依赖于ZC(通用)版本1.1
  • ZB依赖于ZC 1.0版

ZA需要在运行时加载需要在ZB(依赖于ZC)中加载某些东西.

ZA是主应用程序.在它的bin目录下,有一个插件目录plugins/plugin-ZB,我希望在其下放置所有ZB及其依赖项(ZC).

这是我到目前为止所尝试的:

Assembly.Load() 使用相同版本的DLL - 工作正常.

Assembly.Load() 使用不同版本的dll - ZB加载,但是当方法运行时,我得到一个找不到异常的方法.

AppDomain.Load()找不到文件错误; 我甚至使用委托来解决程序集.

关于ZC的一些细节: - 一些方法是公共静态(有些方法不是).例如Log.Log("hello"); - 有些可能返回值(基元或对象). - 某些方法是非静态的(和返回值).

救命? - TIA

c# appdomain

6
推荐指数
1
解决办法
4392
查看次数

标签 统计

.net ×1

appdomain ×1

assemblies ×1

c# ×1

reference ×1