使用msi在客户端计算机上安装必备软件的最佳方法

Sma*_*ack 10 .net windows-installer

我有msi并且想检查vsto运行时是否安装在目标机器上,我在我的msi中通过VS2008使用了启动条件,但它只将用户重定向到供应商的网站.我只想安装先决条件,如果它没有安装在机器上,并希望在msi运行期间安装先决条件.它可以概括为:

当msi正在运行时:

  1. 如果是,则必须检查先决条件是否已安装,然后重新开始安装
  2. 如果没有,则先安装先决条件,然后重新启动msi安装

我搜索并找到许多解决方案,如单个包可执行文件,自定义操作中的vb脚本,但要求不是使用安装程序运送任何东西也不接受exe :(

我安装了orca,但没有太多知识使用Orca自定义msi

感谢您的帮助..提前致谢...

Cos*_*rvu 3

由于 EXE 引导程序不可接受,因此只有一种解决方案:

  • 将必备安装程序存储在MSI 的二进制表中
  • 创建一些自定义操作,从该表中提取它们并启动它们
  • 在InstallUISequence中安排它们,例如在“进度”对话框之前
  • 使用搜索来检测先决条件是否已安装
  • 根据搜索结果调整您的自定义操作

基本上,您需要在安装 UI 期间启动它们。如果自定义操作在 InstallExecuteSequence 期间运行,则它可能不起作用。

Visual Studio 不支持此功能,但一些商业安装创作工具直接支持它。如果您想要免费的解决方案,您可以使用WiX,但您需要自己编写自定义操作。