【问题标题】:Add product key in already built installshield setup.exe在已构建的 installshield setup.exe 中添加产品密钥
【发布时间】:2016-07-07 20:23:08
【问题描述】:

有没有什么方法可以将数据添加到由 Installshield 制作的已构建设置中?

我需要为相同的安装可执行文件添加不同的产品密钥,而无需为每个产品密钥构建单独的副本。

有没有什么方法可以使用 Installshield 来实现?

【问题讨论】:

  • 有转换,但您是否可以实时生成它们可能取决于您是否正在签署您的包。你是吗?
  • 没有。您能否提供有关该主题的更多信息。我进行了一项研究,但发现只有一个名为 Orca 的 msi 安装工具。
  • InstallShield(至少专业版/高级版)可以创建转换。请参阅新建文件。但更重要的是,这些产品密钥应该改变什么?它只是记录一个值,比如说,一个注册表项吗?它是否会阻止程序在最终用户提供有效的程序之前运行?还有什么?
  • 我需要嵌入一个可能会保存到注册表中的键,直到我的程序运行并评估它。基本上我要做的是: 1.创建 Setup.exe 2.将其发送给我们的客户端 3.客户端在 Setpu.exe 中嵌入不同的密钥 4.客户端将带有各种密钥的不同 Setup.exe 文件发送给最终用户.

标签: windows-installer installshield


【解决方案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 将其配置为自动应用,但您也会遇到将转换提交给客户的问题因为他今天可能只下载一个文件,而这需要两个文件。

【讨论】:

  • 我明白这应该如何工作。但是 Installshield 不允许我在注册表视图中创建新的注册表项。在“目标计算机”上,右键单击时不显示上下文菜单。可悲的是,此刻我正在使用 Installshield 10.5 Premier 版。你能帮我解决这个问题吗?
  • 不知道为什么这不起作用(您是否在正确的位置单击鼠标右键?),但您应该能够使用直接编辑器获得相同的效果。如有必要,添加一个组件,然后在注册表表中添加一行。语法很简单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-10
相关资源
最近更新 更多