我们希望创建一个安装项目,该项目将允许采用 pick-n-mix 方法,每个本地客户端安装都包含文件。
基本上,我们有一个核心 setup.exe,我们只想构建一次,其中包含大部分产品。但是对于每个客户,都有一个适合他们解决方案的自定义 DLL。自定义 DLL 在运行时由软件动态加载,并且运行良好。问题出在设置中。
当然我们可以 1) 也为每个客户端编写一个单独的自定义 Setup.exe 2) 保留一个 setup.exe 并在每次我们想为客户进行构建时对其进行自定义
但这两种方法都有问题。
由于过于复杂而无法深入探讨的原因,以下方法将是最安全和最直接的方法:
- 维护单个设置项目
- 将所有自定义 DLL 添加到安装项目,但将它们设置为PackageAs=Loose(以及Vital=False)
- 然后,每次我们想向客户推出安装文件时,我们都会发送安装文件减去所有自定义 DLL,除了他自己的
我们的问题是,当您在客户端上运行 setup.exe 时,这种方法会失效。一切都很好,只是 setup.exe仍然知道您已从该客户的文件系统中悄悄删除的所有 DLL。如果安装程序没有找到它期望找到的所有文件,安装程序就会开始大喊:
实际上,这不是问题,因为您可以点击继续,然后一切正常。
除了实际上这是一个问题,因为如果您向百事可乐销售(我们不是,但说我们是),您有点不希望安装程序抱怨它在安装的中间。
我们几乎希望PackageAs字段的附加设置为Extremely Loose,以便安装程序知道即使找不到文件也不必担心。
在我们现有的方法中是否有无需学习第三方安装程序的解决方案?