【发布时间】:2014-01-30 08:57:35
【问题描述】:
我有两个 DLL,app1.dll 和 app2.dll,它们使用相同的第三个 dll,util.dll,当为特定应用构建时,它们的行为可能略有不同。
我想实现 app1.dll 和 app2.dll 关于他们使用的 util.dll 版本的隔离。在 MSDN 上,我读到为 util.dll 分配一个强名称是解决方案,即这个强名称包含 dll 的名称和版本以及由于签名而产生的指纹。
我目前正在构建 util.dll...
- 对于带有 KeyFileApp1.snk 和版本 1.0.0.1 的 app1
- 对于带有 KeyFileApp2.snk 和版本 1.0.0.2 的 app2
当使用相应的 util.dll 构建部署应用程序时,此接缝可在目标机器上工作。
但是,我有一些模棱两可的地方:
- 是否始终使用版本 1.0.0.0 构建 util.dll,但两个应用程序的密钥文件不同,并且最终让两个应用程序使用正确的 dll 是否足够?
- 是否仅在将 dll 放入全局程序集缓存或将其作为私有程序集时才考虑强名称?
【问题讨论】:
-
如果我是你,我肯定会通过版本号来区分 util.dll 的两个版本(不需要是主要版本),否则你要求的是你提到的 dll 地狱在标题中。
标签: c# .net visual-studio-2010 dll dllregistration