【发布时间】:2018-02-24 18:42:57
【问题描述】:
我在我的 Install Shield 脚本中创建了一个 DOS 命令调用 C:\Windows\System32\PnPutil.exe -a "C:\Program Files (x86)\Anite\Drivers\SPS\ftdiport.inf"
在 Windows 64 位 PC 上运行我的 InstallShield 程序时(双击 Setup.exe 文件)此命令总是给出返回码 2(系统找不到指定的文件。表示在指定的文件中找不到文件地点)。但是,当我在同一台 PC 上打开 CMD 窗口(以管理员身份)并从与 setup.exe 文件相同的位置运行完全相同的 DOS 命令时,它总是可以工作。我知道当我们的 InstallShield 脚本运行时,它是在提升模式下执行的,因此从 InstallShiled 发出此命令应该与在管理员模式下从 CMD 运行它相同。然而,它在第一种情况下失败,但在第二种情况下成功。
另请注意,当我在 Windows 32 位 PC 上运行相同的 InstallShield 程序时,该命令始终有效 C:\Windows\System32\PnPutil.exe -a "C:\Program Files\Anite\Drivers\SPS\ftdiport.inf"
在 Win 64 位操作系统上从 InstallShield 脚本运行此 DOS 命令似乎存在问题,因为它无法在 Program Files (x86) 区域中找到该文件。此外,此问题似乎仅在调用 pnputil 实用程序时发生 - 所有其他实用程序(例如 regsvr32.exe)都被调用而没有任何问题。
我们将不胜感激任何建议或帮助。非常感谢。
【问题讨论】:
-
您打开的是 32 位还是 64 位命令提示符,您的代码是什么? InstallScript 始终作为 32 位代码运行,因此 32 位命令提示符将是最好的并行。
标签: installshield