我正在使用InstallShield 2013 Professional,基本MSI项目。
我的安装包中包含exe文件 - myfile.exe 。我在快捷方式视图中添加了快捷方式,将 myfile.exe 指定为图标文件,将0指定为图标索引。此快捷方式的目标位置是目标框上的桌面。
假设,我的可执行文件包含3个图标资源,我想在安装过程中动态更改图标。为了更清楚我想做什么:我在其中一个安装对话框上有3个单选按钮,我想根据选中的单选按钮将图标应用到myfile.exe快捷方式(1-st单选按钮 - > 1-st图标,第二个单选按钮 - >第二个图标,第三个单选按钮 - >第三个图标)。
我怎样才能得到这种行为?换句话说,如何在安装过程中更改Icon File的图标索引?
答案 0 :(得分:1)
这是一个复杂的请求。实现这一目标的一种更简单的方法是使用不同的名称和不同的图标0资源编译EXE三次,然后使用互斥的组件条件来控制安装哪一个。
如果那不是一个选项,那就太棘手了。 Shortcut Table将IconIndex列定义为整数,并且不是可格式化的。这意味着你不能在字段中说[ICONINDEX]并让它在安装时解析。
那你能做什么?您可以使用自定义操作在安装期间将表数据动态地发布到临时表中。使用C#的示例可以在以下位置找到:Dynamic Windows Installer UI
意识到如果有人手动创建快捷方式,他们可能会选择“错误”的图标。