我正在使用InstallShield(Limited Edition)
中的VS2012
创建设置。首先,我创建了一个安装文件。我还有其他一些工作要做,所以我创建了一个项目,并将其exe
添加为新的自定义操作After Initialization(Before First Dialog)
。
现在我想从命令行运行此设置并将参数传递给它。我尝试使用%1来获取命令行输入的第一个参数,但它不起作用。请告诉我们如何使用命令行传递参数并在exe文件中使用它。
答案 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。