Используйте установщик Wix для добавления ярлыка на подпапку в 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.

Однако я не хочу удалять высокоуровневые папки, когда я удаляю, я только хочу удалить папку Приложения 6.3.0 и ниже.

Как я могу добавить ярлык на подпапку программы в меню "Пуск"?

9
задан Seth 5 January 2010 в 05:21
поделиться

1 ответ

Если это сообщение исходит от ICE64, то это предупреждение. Предупреждения ICE должны быть поняты и если допустимо, то проигнорированы. http://msdn.microsoft.com/en-us/library/aa369011(VS.85).aspx имеет следующее:

ICE64 проверяет, что новые каталоги в профиль пользователя удалён правильно в роуминговых сценариях.

Невозможность исправить предупреждение или ошибку. докладываемые ICE64 , как правило, приводят к тому, что проблемы с полной очисткой компьютер во время деинсталляции. Когда роуминговый пользователь, который установил приложение входит в компьютер впервые, весь профиль скопирован на компьютер. На сайте реклама (которая происходит после скачать роуминг-профиль), Инсталлятор проверяет, что каталог уже есть и, следовательно, есть а не удалять при деинсталляции. Данный сайт оставляет каталог у пользователя компьютер навсегда.

Не понятно, зачем оставлять пустой грязный "App" в меню "Start". Похоже, что решить проблему с ICE проще всего. Для этого просто добавьте еще один элемент RemoveFolder в ProgramMenuDir Component.

9
ответ дан 4 December 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: