使用同一库的两个不同版本

Phi*_*ler 5 .net c# ilmerge

我正在开发一个小型库,将在多个应用程序中使用。我想在我自己的库中使用一些第三方库(例如log4Net、实体框架等)。我想我可以将 DLL 与我自己的库一起部署,或者使用 ILMerge 创建单个 DLL(我对 ILMerge 知之甚少,从未尝试过)。

我担心如果使用我的库的应用程序也使用我将使用的相同第三方库会发生什么。例如,如果我使用 log4Net 版本 1.2,而消费应用程序使用 log4Net 版本 1.0,我是否会遇到某种冲突,或者只有一个版本的程序集无法加载?

ILMerge 会阻止这种情况吗?在开发具有第三方依赖项的库时,通常如何解决这个问题?

Ale*_*ici 3

您可以使用extern 别名

您可能必须引用具有相同完全限定类型名称的两个版本的程序集。例如,您可能必须在同一应用程序中使用两个或多个版本的程序集。通过使用外部程序集别名,每个程序集的命名空间可以包装在由别名命名的根级命名空间内,这使得它们可以在同一文件中使用。

这是Extern 别名演练

  • 几年前,如果我的团队知道这一点,那将会非常有用。 (2认同)