2

我正在使用InstallShield(Limited Edition)in创建一个设置VS2012。首先,我创建了一个安装文件。我还有一些事情要做,所以我创建了一个项目并将其添加exe为新的自定义操作After Initialization(Before First Dialog)

自定义操作 InstallShield 映像

现在我想从命令行运行这个设置并将参数传递给它。我尝试使用 %1 获取命令行输入的第一个参数,但它不起作用。请告诉如何使用命令行传递参数并在 exe 文件中使用它。

4

1 回答 1

3

除非我遗漏了什么,否则 InstallShield Limited Edition 不支持此功能。

从 Windows Installer 的角度来看,您所指的内容称为安全自定义公共属性。(参见:SecureCustomProperties 属性

考虑命令行:

msiexec /i foo.msi SERVERNAME=MyServer

SERVERNAME 大写的事实使其公开。它列在 SecureCustomProperties 属性中的事实将使其安全。只有在考虑 UAC 时,安全的公共财产才能发挥作用。如果该过程已经提升,那么它不一定是安全的,但它确实应该是安全的。

在自定义操作方面,您使用 [SERVERNAME] 来引用 SERVERNAME 属性的值。

当然,当有人只运行 MSI 但 InstallShield 限量版不支持此功能时,您当然可能希望自定义 UI 体验。

我可以考虑使用 WiX 合并模块和/或对构建的 MSI 应用转换来使其工作的方法,但所有这些都需要高级 MSI 知识,而且通常更容易升级到专业版。

于 2013-04-10T14:27:10.220 回答