安装期间更改程序名称和快捷方式标题

时间:2014-04-21 21:17:09

标签: windows-installer installation installshield

我使用Install Shield 2013进行基本MSI安装,我们有大约20个不同的联盟会员版本。实际上,这些版本之间的唯一区别是程序名称和桌面上安装的快捷方式。我们正在尝试使用一个版本构建,而不是一遍又一遍地使用这些微小的差异来构建相同的程序。

我一直试图找到一种方法来在安装时更改这些项目但尚未成功。之前有没有人这样做过,或者有什么建议我可以在哪里找到有关此类事情的信息。

我在安装时的用户体验目标如下:

  • 出现通用欢迎屏幕
  • 系统会提示用户提供联属会员代码
  • MSI将程序名称和快捷方式信息更改为分配给该代码的标题

先感谢大家!

2 个答案:

答案 0 :(得分:1)

快捷方式表不允许格式化快捷方式名称。我知道如何以三种方式实现变异点:

1)建立时间 2)安装时间 3)运行时

您的问题表明您希望从构建时间到安装时间。可以使用使用临时行操作快捷方式表的自定义操作来执行此操作。

我这样做的方法是拥有一个带有架构的自定义表联盟代码[PK]品牌

自定义操作将获取提示或传递的值,并在表中查找品牌数据的行。然后将数据发送到快捷方式表中,让MSI处理其余的数据。

答案 1 :(得分:1)

我想我只会使用转换,因为这些变化非常小。转换用于向MSI添加多语言支持,因此只需对父数据库进行一些更改,这肯定会更容易。

您创建自己的 setup.exe启动器(有许多模板可用 - 我认为即使Installshield也有一个可以使用的模板)。 setup.exe请求联盟代码,然后应用适当的转换(或默认转换)并启动安装。这将是推荐的方法。

您甚至可以将变换合并为构建步骤并吐出尽可能多的变换"您需要的MSI文件。然后就会减少" clunk"在启动时,但听起来你需要根据联盟代码切换行为,然后你的setup.exe会有效,因为它可以包含根据用户输入选择转换应用所需的逻辑。

如果你不熟悉变换,它本质上就像一个小小的交易"或应用于MSI的数据库片段,用新数据添加,替换和/或更新行。您可以通过任何MSI工具创建一个,包括Windows SDK中的Orca。

msiexec.exe 的命令行中应用了

转换。这是一个示例命令行,带有截断路径以供说明。这是静默安装,使用详细日志和两个转换(一个是语言转换):

  

msiexec.exe / I" IsWiX.msi" / QN / L * V" C:\ msilog.log"   TRANSFORMS =" C:\ IsWix.mst; C:\ 1031.mst"

以下是应用于父数据库的示例转换: enter image description here