0

我有一个 Installshield Basic MSI 项目。这个项目使用 Installshield 的引导程序来安装几个安装先决条件。一切都捆绑并压缩在一个 exe (Setup.exe) 中。我有一个先决条件,需要知道要执行的文件的完整路径。是否有可用的属性来查找此路径?

或者另一种解决方案。我们正在使用 Installshield 2008,目前升级的机会不大。我需要安装依赖于 Windows Installer 4.5 的 SQL Server 2008。Installshield 2008 不支持 WinInstaller 4.5,因此我为 WinXp 和 Vista 创建了先决条件。我的 WinXP 工作正常。

但是在 Windows Vista 中,Windows Installer 4.5 的可再发行组件是一个 .msu 文件,需要通过 wsua.exe 执行。我创建了一个小应用程序,它只接受命令行参数并使用参数启动 wusa.exe 以安装 Windows Installer 可再发行组件。但是 wusa.exe 需要可再发行组件的完整路径。有没有办法找到 setup.exe 提取文件的路径?

或者有没有办法在 Installshield 2008 中添加对 Windows Installer 4.5 的支持,对此表示怀疑,但这是最简单的

4

1 回答 1

2

对于您使用 IS2008 的替代方法,您应该能够在您的帮助程序 exe 中执行此操作。假设您使用的是 C++,您可以调用 GetModuleFileName() 来查找正在运行的 exe 的位置(其他语言应该在某处公开类似的功能)。由于所有先决条件的文件都将被提取到同一个文件夹中,因此您也可以使用它来确定 .msu 文件的完整路径。

升级将为您提供直接支持(以及包含的 Windows Installer 4.5 的先决条件),因为 IS2009 和更高版本的先决条件 shell 执行其目标,本机支持 .msu 文件。IS2009 及更高版本还支持先决条件命令行属性,您可以使用它来定位先决条件文件;请参阅InstallShield 2009 发行说明并搜索 ISPREREQDIR。

于 2010-02-27T16:08:09.133 回答