Windows installer WIndows Installer将快捷方式放入具有属性的自定义文件夹
我正在使用InstallShield构建安装程序。这是一个基本的MSI项目(我不希望对InstallShield有任何依赖性,这可能会使将来迁移到WiX更加困难)。我正在尝试将一些快捷方式放入自定义文件夹中,我希望将其定位为:Windows installer WIndows Installer将快捷方式放入具有属性的自定义文件夹,windows-installer,installshield,Windows Installer,Installshield,我正在使用InstallShield构建安装程序。这是一个基本的MSI项目(我不希望对InstallShield有任何依赖性,这可能会使将来迁移到WiX更加困难)。我正在尝试将一些快捷方式放入自定义文件夹中,我希望将其定位为: [INSTALLDIR]\[PROP] Environment 所有快捷方式都将指向[INSTALLDIR]\My.exe[PROP],例如,带有命令行参数的已安装可执行文件 在InstallShield(看起来是MSI)中,我不能将目录表中的文件夹设置为[PROP]E
[INSTALLDIR]\[PROP] Environment
所有快捷方式都将指向[INSTALLDIR]\My.exe[PROP]
,例如,带有命令行参数的已安装可执行文件
在InstallShield(看起来是MSI)中,我不能将目录表中的文件夹设置为[PROP]Environment
(实际上我可以,但这会给我一个文件夹,字面上命名为[PROP]Environment
)。我曾尝试使用类型35自定义操作(设置目录),但它要么什么也不做,要么给我无法访问网络位置{expanded property}环境
,这取决于我在序列中的位置。当前,它位于SetupProgress之后的UI序列中。我在UI和Execute序列中的不同位置尝试过它,但没有成功
如果对解决方案产生影响,最终目标是能够多次运行安装程序(作为维护或多次安装),但后续的“安装”只会在新文件夹中添加其他快捷方式,例如:
PROD Environment
TEST Environment
TRAINING Environment
请随时提供WiX解决方案。我发现WiX文档和代码在解释正在发生的事情方面比IS帮助要好得多
更新:如果有帮助的话,我已经有了一个.Net自定义操作(通过DTF),以防我可以这样做。我在想如何在那里创建快捷方式。我不确定这将如何影响像广告这样的事情,我知道我需要添加一个CA进行卸载来删除它们
更新:这没有帮助。或者,至少,没有必要这样做,有人可能会说,不应该这样做。解决方案非常简单,如果有点复杂的话。我最初使用InstallShield创建它,但过了一段时间,您将超出InstallShield GUI的功能范围。我将记录MSI表(从InstallShield DirectEditor),以便将其转换为WiX。您需要在必要时添加标识符(在需要它们的地方应该很明显):
- 在FeatureComponents表中,添加一行:
Feature\uU=DefaultFeature和Component\uU=MyCustomShortcuts
- 在Component表中添加一行:
Component=MyCustomShortcuts,Directory\uz=MYSHORTCUTFOLDER
- 在目录表中为快捷方式添加一行:
Directory=MYSHORTCUTFOLDER,Directory\u Parent=TARGETDIR,DefaultDir=。
Action=UpdateShortcutFolder,Type=51,Source=MYSHORTCUTFOLDER,Target=[INSTALLDIR][SHORTCUT\u FOLDER\u PREFIX]快捷方式
Directory=MYSHORTCUTFOLDER,Name=MyProg~1 | MyProgram,Component=myprogrammonent,Target=[INSTALLDIR]MyProgram.exe
在我的测试中,卸载时,快捷方式似乎会被删除,自定义目录也会被删除。可以
PROP
是任何东西,或者该属性可以被限制为固定的值集,例如{PROD | TEST | TRAINING}
?如果可以限制,那么值集是什么?不,不能限制。或者,我宁愿不要。另外,如果有帮助的话,我已经有了一个.Net自定义操作(通过DTF),以防我可以这样做。为了在需要信用的地方提供信用,我和InstallShield支持工程师Andrew共同达成了此解决方案。尽管我可能很想喋喋不休地谈论InstallShield UI/UX有多么糟糕,但到目前为止,他们的技术支持非常出色。