什么是检查先决条件的最佳方法

时间:2016-02-18 09:23:08

标签: wix burn

我正在使用自定义UI构建一个bootstrapper安装程序。它有一些先决条件,它需要在安装之前检查,如果有任何遗漏 - 在UI中显示它。

我有两个可能性:

  • 使用类似RigustrySearch
  • 的工具检查我的bootstrapper的XML
  • 在UI中检查并在bootstrapper中设置一些变量
  • 拥有自定义扩展程序并从XML调用

这里最好的方法是什么?

以XML格式使用它的优点:

  • 本地方式

在UI部分使用它的优点:

  • 我可以整理好干净的代码
  • 我可以使用单独的Dll进行先决条件验证,甚至可以使用nuget包
  • 我有更多的灵活性,制作复杂的断言更简单
  • 我可以为每个先决条件提供额外信息,例如许可证信息和用户友好名称

拥有自定义扩展程序的优点:

  • 不需要在XML中使用变量

我个人更倾向于第二种选择,因为如果我有很多先决条件,选项一会使我的XML变得庞大且难以阅读。选项3很不错,但是在UI中显示先决条件及其许可证信息的用户友好名称更加困难。你们觉得怎么样?

1 个答案:

答案 0 :(得分:2)

我认为这实际上取决于您的先决条件是什么,以及您打算如何处理他们的存在/缺席。这是我个人的偏好。

通常情况下,如果我要使用托管引导程序应用程序,那么如果我需要用户提供一些输入,那么我将会检测到先决条件。安装目录,凭据等等。然后,我将托管应用程序中的一些值传递给刻录变量,然后将其转换为各个msi要响应的Wix属性。这是我最常用的方法。

如果您的所有先决条件都是捆绑包的一部分,并且您不需要用户进行任何交互,我倾向于继续进行,就好像我正在安装每个包,并且包本身负责处理他们的自己升级/安装不需要的行为。即。将.Net或第三方安装程序与您的应用程序捆绑在一起。

我倾向于避免针对此类工作的自定义操作,在尝试处理安装/升级/修复/卸载等所有成功/失败路径时,我发现它们有点麻烦。

我认为这对您的具体用例来说有点主观,而且对于所有情况都没有一种最佳方法。