用于从msi文件+配置文件创建单个文件安装程序的免费软件工具(这对于最终用户来说很容易使用)

时间:2010-01-27 00:03:16

标签: installer windows-installer

我的安装程序要求在同一目录中有两个文件才能安装。

  1. 安装程序(.msi文件)
  2. 安装程序复制的组织特定配置文件。 (此文件由组织自定义,然后分发给最终用户)。
  3. 由于有两个文件,因此必须将文件作为zip文件分发。这提出了如果用户尝试运行.msi而不实际提取zip ...只会提取msi文件的问题。我能够在安装过程中检测到问题并告诉用户他们需要解压缩文件......但是你知道没有人真正读取错误信息。

    所以,我想让它更加万无一失,所以我想知道是否有一个简单的工具,我可以让我的客户(即组织)能够修改配置文件,并在完成后创建一个.exe文件,单击时将提取到临时文件夹,然后运行msi。 我知道有解决方案需要商业软件。我想知道是否存在可以执行此操作的简单免费软件工具。

    编辑:接受的解决方案注意:

    我遇到的一个问题是iexpress并非设计用于.msi文件。因此,请求您安装程序的步骤。这是一个组合框,如果您在上一步中添加了.exe文件,则可以从中选择.exe文件。相反,你必须手动输入

     msiexec /i yourinstaller.msi
    

    我很高兴能找到内置于Windows的简单解决方案。唯一可能更好的方法是,如果它允许使用通配符,那么你的iexpress项目将能够处理每个版本发生的msi文件名称的更改。并将安装程序默认为.msi文件。这些轻微的不便被最终用户不需要安装任何新软件来创建软件包的事实所抵消,因此我已经停止寻找其他工具。

3 个答案:

答案 0 :(得分:1)

您可以尝试使用iexpress

它使您可以打包一组可以解压缩的文件,并可以选择在提取后自动运行安装命令。它还有一些选项,使您能够提示用户有关事物,显示EULA,重新启动计算机等。

我相信它是Windows的一部分(IE的一部分?) - 尝试从运行对话框中运行iexpress.exe以获取UI。

答案 1 :(得分:0)

Wix项目有一个bootstrapper和packager来处理这类事情。

我已经使用了很多wix但是还没有真正看过bootstrapper / packager - 上次我快速看一下它不是真的可用但是很久以前所以现在可能会更好。

答案 2 :(得分:0)

我猜测配置文件类似于属性文件,并且您希望用户设置属性“foo”和“bar”的值。您不需要单独的工具来更新文件。

我会这样做:

  • 在安装中放置一个或多个对话框,询问用户foo和bar的值应该是什么,并相应地设置几个公共属性。

  • 编写一个自定义操作,将配置文件写入您想要的任何位置,包括您想要的foo和bar值。这在vbscript中非常简单。

  • 将自定义操作放在执行序列中的某个位置(理想情况下,作为延迟执行操作,因为您正在对系统进行更改)。

  • 在RemoveFile表中添加一个条目,因此在卸载时删除了配置文件(假设您不希望它被遗忘。)

  • 在LaunchCondition表中添加一个条目,以防止用户进行静默安装。或者,如果要允许静默安装,请将包含配置数据的公共属性的名称设为已知,并使其成为LaunchCondition的一部分。你会阻止“msiexec / i myapp.msi”,但你可以选择允许“msiexec / i myapp.msi FOO = Something BAR = SomethingElse”。