是否有任何方法可以在Installshield已经构建的设置中添加数据?
我需要为同一个安装程序可执行文件添加不同的产品密钥,而无需为每个产品密钥构建单独的副本。
使用Installshield有什么办法可以实现吗?
答案 0 :(得分:1)
由于您使用的是InstallShield setup.exe,最简单的方法可能还是使用工具setupini.exe(在InstallShield的某些早期版本中,这是一个单独的"不支持的"工具,并且你可以在我们的KB系统中找到下载。您可以以类似于本文中所示的方式使用此方法来修改传递给MSI包的命令行以包含包含该键的属性。使用名为PRODUCTKEY
的属性,它看起来像这样:
SetupIni.exe "<path to>\MySetup.exe" Startup CmdLine PRODUCTKEY="12-34-56"
为了使其有意义,您必须在使用此属性的安装程序中包含一些内容。最简单的可能是注册表项,其值(或值数据)包含对PRODUCTKEY
属性的引用。表示为.reg文件,可能如下所示:
[HKEY_LOCAL_MACHINE\Software\My Company Name\My Product Name\Version]
"ProductKey"="[PRODUCTKEY]"
请注意,PRODUCTKEY
应该是公共属性(其名称不包含小写字符),并列在SecureCustomProperties
属性中。另请注意,这应该被视为建议而非安全:例如,如果您希望通过要求客户输入匹配的代码来授权您的产品,请不要这样做。这种方法使客户可以使用专有技术来记录安装,甚至可以通过任务管理器查找命令行。
如果设置属性不足以满足您的需求,您还可以考虑使用creating a transform,并将其配置为通过使用setupini.exe自动应用,但是您也会遇到将转换设置为客户,因为他今天可能只下载一个文件,这需要两个文件。