我正在使用InstallShield构建安装程序。这是一个基本的MSI项目(我宁愿不依赖于InstallShield,这可能会使将来更难转移到WiX)。我试图将一些快捷方式放入我想要定位的自定义文件夹中:
[INSTALLDIR]\[PROP] Environment
所有快捷方式都指向[INSTALLDIR]\My.exe [PROP]
,例如使用命令行参数安装的可执行文件。
在InstallShield中(并且,它显示为MSI)我不能只将目录表中的文件夹设置为[PROP] Environment
(实际上我可以,但这给了我一个名为[PROP] Environment
的文件夹) 。我尝试使用类型35自定义操作(设置目录),但它不执行任何操作或给我Could not access network location {expanded property} Environment
,具体取决于我获得它的序列中的位置。目前它位于SetupProgress之后的UI序列中。我已经在UI和执行序列中的不同位置尝试过它,没有运气。
如果它对解决方案产生影响,最终目标是能够多次运行安装程序(作为维护或多次安装),但后续的“安装”只会在新文件夹中添加其他快捷方式,例如:
PROD Environment
TEST Environment
TRAINING Environment
随意提供WiX解决方案。我发现WiX文档和代码在解释正在发生的事情方面要比IS帮助更好。
更新:如果有帮助我已经有了.Net自定义操作(通过DTF),以防我可以这样做。我正在考虑在那里创建快捷方式。我不确定这会对广告等内容产生什么影响,我知道我需要添加一个CA来进行卸载才能将其删除。
更新更新:没有用。或者,至少,没有必要这样做,有人可能会说,不应该这样做。
答案 0 :(得分:0)
解决方案非常简单,如果有点复杂的话。我最初使用InstallShield创建它,但在一点之后,您将超越InstallShield GUI的功能。我将记录MSI表(来自InstallShield DirectEditor),因此应该很容易转换为WiX。您需要在必要时添加标识符(在您需要的地方应该很明显):
Feature_ = DefaultFeature and Component_ = MyCustomShortcuts
Component = MyCustomShortcuts, Directory_ = MYSHORTCUTFOLDER
Directory = MYSHORTCUTFOLDER, Directory_Parent = TARGETDIR, DefaultDir = .
Action = UpdateShortcutFolder, Type = 51, Source = MYSHORTCUTFOLDER, Target = [INSTALLDIR][SHORTCUT_FOLDER_PREFIX] Shortcuts
Directory = MYSHORTCUTFOLDER, Name=MyProg~1|MyProgram, Component = MyProgramComponent, Target = [INSTALLDIR]MyProgram.exe
那就是它。快捷方式步骤是InstallShield UI无法处理的事项。幸运的是,从InstallShield Premier 2014开始,它只是忽略了它无法理解的内容,因此您无法在系统配置/快捷方式视图中查看快捷方式。然而,它们将被安装。
在我的测试中,卸载时似乎删除了快捷方式,自定义目录也是如此。