1

我们希望创建一个安装项目,该项目将允许采用 pick-n-mix 方法,每个本地客户端安装都包含文件。

基本上,我们有一个核心 setup.exe,我们只想构建一次,其中包含大部分产品。但是对于每个客户,都有一个适合他们解决方案的自定义 DLL。自定义 DLL 在运行时由软件动态加载,并且运行良好。问题出在设置中。

当然我们可以 1) 也为每个客户端编写一个单独的自定义 Setup.exe 2) 保留一个 setup.exe 并在每次我们想为客户进行构建时对其进行自定义

但这两种方法都有问题。

由于过于复杂而无法深入探讨的原因,以下方法将是最安全和最直接的方法:

  1. 维护单个设置项目
  2. 将所有自定义 DLL 添加到安装项目,但将它们设置为PackageAs=Loose(以及Vital=False
  3. 然后,每次我们想向客户推出安装文件时,我们都会发送安装文件减去所有自定义 DLL,除了他自己的

我们的问题是,当您在客户端上运行 setup.exe 时,这种方法会失效。一切都很好,只是 setup.exe仍然知道您已从该客户的文件系统中悄悄删除的所有 DLL。如果安装程序没有找到它期望找到的所有文件,安装程序就会开始大喊:

在此处输入图像描述

实际上,这不是问题,因为您可以点击继续,然后一切正常。

除了实际上这一个问题,因为如果您向百事可乐销售(我们不是,但说我们是),您有点不希望安装程序抱怨它在安装的中间。

我们几乎希望PackageAs字段的附加设置为Extremely Loose,以便安装程序知道即使找不到文件也不必担心。

在我们现有的方法中是否有无需学习第三方安装程序的解决方案?

4

1 回答 1

0

听起来您的可选组件应该创建为合并模块,然后您需要创建一个仅包含某些模块的特定安装程序。听起来您有一些不希望向其他客户公开的特定于客户的库。当然,这意味着您需要为每个客户端构建一个版本,但这是可以自动化的。

于 2012-10-08T16:35:18.580 回答