WiX:没有为通用组件创建快捷方式

时间:2013-11-11 10:12:29

标签: wix

我有2个功能(feature1和feature2) 它们都像这样使用comon组件组:

<Feature1 ...
<ComponentGroupRef Id="compA">
>

同样的:

<Feature2 ...
<ComponentGroupRef Id="compA">
>

COMPA:

<Component Id="ComponentA">
<Shortcut Id="ImportantShortcurt" Advertise="yes" Directory="..."
        Name="..." LongName="..." Icon="..."/>
</Component>

此组件包含在

<ComponentGroup Id="compA">
    <ComponentRef Id="ComponentA" />   
    ....
</ComponentGroup>

用户可以选择安装Feature1,Feature2,两者。 如果他选择安装两者或Feature2 - 一切正常,如果只有Feature1,而不是Feature2 - 一切正常,除了没有Id“ImportantShortcut”的快捷方式(文件已安装,只有快捷方式不存在)。

我在使用msiexec进行日志记录。一切似乎都没问题,但

  

为我的快捷方式执行操作:ShortcutCreate

Feature1位于file1.wxi中,Feature2位于file2.wxi中 它们都包含在产品文件中。

<Fragment ...>
<?Include file1.wxi>
<?Include file2.wxi>
<...>

所以,一个问题:如果Feature2不存在,快捷方式在哪里? ComponentA的所有文件都在这里。

1 个答案:

答案 0 :(得分:0)

这很有趣。我的第一反应可能是Feature2为自己拉出“快捷方式”,即使feature2被禁用也是如此。

对于初学者,我会正确实现快捷方式,例如使用RemoveFolder&amp;添加注册表项以将其标记为keyPath,如下所示:

http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/create_start_menu_shortcut.html

看看是否会让它变得更好,我对广告标志并不熟悉,它可能会影响。

或者,只需使用ORCA.EXE并查看表格的内容。你会更好地理解这种方式。您可以使用ORCA.exe来比较两个.MSI文件,看看哪些部分可以使用这些技巧 - 如果您没有找到修复程序,我们可以进一步查看。