InstallShield(LE) - 传递可在自定义动作exe中使用的命令行参数

时间:2013-04-10 11:20:11

标签: visual-studio-2012 installation installshield-le

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

Custom Actions InstallShield Image

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

1 个答案:

答案 0 :(得分:3)

除非我遗漏了某些内容,否则InstallShield Limited Edition不支持此功能。

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

考虑命令行:

msiexec / i foo.msi SERVERNAME = MyServer

SERVERNAME大写的事实使它公开。它在SecureCustomProperties属性中列出的事实将使其成为安全。考虑到UAC时,只有安全的公共属性才有效。如果该过程已经提升,那么它不一定是安全的,但实际上应该是。

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

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

我可以想办法让它使用WiX合并模块和/或将转换应用到构建的MSI,但所有这些都需要高级的MSI知识,而且通常更容易升级到Professional。