我们有 3 个使用相同 .net dll(代码 + 旧版)的软件产品。
所有这些都使用跨 3/4 dll 的通用功能。
我想知道如何以及在哪里部署这些 dll。
这是最标准的方法。
S1] 连同其安装目录中的每个产品——可能是最简单的方法。
(但如果要在共享 dll 中发生任何更新 .. 它必须对所有 3 个 dll 进行。)
S2]放在普通文件夹里?
S3] 系统 GAC 对此有帮助吗?
(将所有 3 个放在 GAC 中,代码是共享的。但我担心版本控制?)
此外,如何为此类项目构建可部署的设置:
D1]在一个设置中打包所有 dll。每个设置都有自己的副本。
但是假设如果有人安装了软件 A,那么对于软件 B,共享文件已经存在于系统中。
D2]在单独的设置中部署公共(public)文件并打包每个文件。尝试检测文件是否已经存在,如果是,则不要部署。(这仍然无助于设置大小)
公共(public)文件夹 - 它应该是 GAC 还是系统上的某个文件夹?
涉及复杂的设置,因为它需要检查不同共享文件的版本。
还假设如果要发布新版本的软件并且它必须与旧版本共存..
如何保持跨多个版本的兼容性?
最佳答案
S1 + D1 当然。关于“如果有任何更新......”:这是一个好处而不是一个问题。如果您更改程序集,您将不得不重建正在使用的项目。 S1 场景允许您逐个项目地执行该操作,它们之间没有不必要的依赖关系。
不要将 GAC 用于小型库,这很麻烦。
关于.Net Assembly/dll 共享和部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1900708/