使用Wix安装程序在开始菜单程序中添加子文件夹的快捷方式

时间:2010-01-05 04:50:47

标签: windows installer wix windows-installer startmenu

我正在尝试将程序快捷方式添加到开始菜单快捷方式中的现有文件夹中。例如All Programs -> AppNameFolder -> AppNameVersionFolder -> AppShortcut

为了达到这个目的,我添加了额外的行:

          <Directory Id="ProgramMenuFolderApp" Name="App">
                <Directory Id="ProgramMenuDir" Name="APP 6.3.0">

到我的.wxs文件中的以下代码:

    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder" Name="Program Files">
            <Directory Id="CompanyName" Name="CompanyName">
                <Directory Id="App" Name="App">
                    <Directory Id="INSTALLDIR" Name="App 6.3.0">
                        <Component Id="MainExecutable" Guid="23FFE6FD-2BEA-4946-9875-8DBEEA5AAF55">
                            <File Id="AppEXE" Name="App.exe" Source="App.exe" KeyPath="yes">
                                <Shortcut Id="startmenu" Directory="ProgramMenuDir" Name="App 6.3.0" WorkingDirectory='INSTALLDIR' Icon="App.exe" IconIndex="0" Advertise="yes" />
                                <Shortcut Id="desktopApp" Directory="DesktopFolder" Name="App 6.3.0" WorkingDirectory='INSTALLDIR' Icon="App.exe" IconIndex="0" Advertise="yes" />
                            </File>
                        </Component>
                    </Directory>
                </Directory>
            </Directory>
        </Directory>
        <Directory Id="ProgramMenuFolder" Name="Programs">
            <Directory Id="ProgramMenuFolderApp" Name="App">
                <Directory Id="ProgramMenuDir" Name="App6.3.0">
                    <Component Id="ProgramMenuDir" Guid="BF266F76-192A-493E-B5C7-C54660E61D7D">
                        <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
                        <RegistryValue Root="HKCU" Key="Software\CompanyName\App6.3.0" Type="string" Value="" KeyPath="yes" />
                    </Component>
                </Directory>
            </Directory>            
        </Directory>
        <Directory Id="DesktopFolder" Name="Desktop" />
    </Directory>

尝试构建时出现以下错误:

The directory ProgramMenuFolderApp is in the user profile but is not listed in the RemoveFile table

但是,我在卸载时不想删除更高级别的文件夹,我只想删除App 6.3.0文件夹及其下方。

如何在开始菜单中将快捷方式添加到程序子文件夹?

1 个答案:

答案 0 :(得分:9)

如果该消息来自ICE64,那么这是一个警告。应该理解ICE警告,如果可以接受则忽略。 http://msdn.microsoft.com/en-us/library/aa369011(VS.85).aspx有这样的说法:

  

ICE64检查新目录   用户配置文件已正确删除   在漫游场景中。

     

未能修复警告或错误   ICE64报告通常会导致   彻底清洁的问题   卸载期间的计算机。   已安装的漫游用户   应用程序登录到计算机   所有的个人资料第一次   被复制到计算机上。上   广告(发生在...之后)   漫游配置文件下载),   安装程序验证该目录   已经存在,因此确实如此   不要在卸载时删除它。这个   将目录留在用户的目录上   电脑永久。

目前尚不清楚为什么要在开始菜单中留下空的“App”目录。似乎解决ICE问题最简单。为此,只需将另一个RemoveFolder元素添加到ProgramMenuDir组件。