【发布时间】:2014-12-07 19:26:04
【问题描述】:
如何在一个目录中使用同名的不同dll(其他版本)? 例如,LibA (ExternalLib.dll) 的版本为 1,而 LibB (ExternalLib.dll) 的版本为 2。
我将我所有的程序部署到同一个目录(这是我们公司的标准,我无法改变这个事实)。问题是如果使用 LibB 的 ProgramB 部署在 ProgramA 使用 LibA 的目录中,那么 ProgrammA 将不再工作。
对于我自己的库,如果有很大的变化,我会使用主版本号(.01、.02)。但是我使用的 Lib 是一个外部 Lib,它的每个版本都需要不同的许可密钥(由程序本身处理)。
我试图将外部库从“ExternalLib.dll”重命名为“ExternalLib.v1.dll”和“ExternalLib.v2.dll”,但是当我运行我新编译的程序时,它会抛出一个异常“ExternalLib.dll”。找不到dll”。我项目中的引用设置为“ExternalLib.v1.dll”,编译工作正常。
对于处理同一目录中的不同程序集版本有什么想法/建议吗?
【问题讨论】:
-
您不能,您必须将您的第三方 DLL 放在 GAC 中,这要求它们使用强命名密钥进行签名。 msdn.microsoft.com/en-gb/library/yf1d93sz(v=vs.110).aspx
标签: c# .net visual-studio dll assemblies