在 WIX 中运行时为快捷方式动态分配名称

Posted

技术标签:

【中文标题】在 WIX 中运行时为快捷方式动态分配名称【英文标题】:Dynamically assigning name to shortcut at run time in WIX 【发布时间】:2013-05-13 14:08:22 【问题描述】:

我想根据用户输入为快捷方式分配不同的名称。使用 WiX 工具集是否可行?我尝试将属性值分配给Shortcut 元素的Name 属性,但它不起作用。

【问题讨论】:

【参考方案1】:

Shortcut Table 的 Name 列不是 Formatted 类型,因此无法在运行时使用 [PROPERTY] 对其进行变异。

我知道的唯一方法是:

    跳过快捷方式表并编写自定义操作自行处理。 编写自定义操作以在运行时使用 SQL TEMPORARY 语法动态创作 ShortCut 表。 可能有一个已实现 #2 的扩展。

【讨论】:

【参考方案2】:

我使用这个解决方法:

<CustomAction Id="SetShortcutFolder" Return="check" Property="ProgramMenuDir" Value="[ProgramMenuFolder][PRODUCTNAME]"></CustomAction>

<!--Setting up the shortcuts for the product-->
    <Directory Id="ProgramMenuFolder" Name="Programs">
       <Directory Id="ProgramMenuDir" Name="TempName"/>
    </Directory>



<!--Set the install path to match the path of the product already installed-->
<Custom Action="SetInstallPath" Before="CostFinalize"/>

希望这会有所帮助..:)

【讨论】:

【参考方案3】:

如果您要进行大量翻译并说很多排列,那么这是一个真正的缺点。而不是使用 WIX(这是我用过的最模糊的 API 之一),您可能更喜欢使用 Windows API 编写快捷方式。

【讨论】:

以上是关于在 WIX 中运行时为快捷方式动态分配名称的主要内容,如果未能解决你的问题,请参考以下文章

Wix 为所有用户/每台机器创建非广告快捷方式

Wix 无法创建快捷方式

Wix卸载快捷方式无法正常工作

使用 WiX 创建桌面快捷方式

wix 快捷方式 xsl 文件

在WIX中创建使用环境变量的文件夹的快捷方式