WiX: Как переопределить «C: \ Program Files (x86) »на машине x64 в последовательности WixUI_Advanced?

Я использую последовательность WixUI_Advanced , чтобы пользователи могли выбирать для каждой машины или для каждого пользователя установка и изменение целевой папки. Мой проект WiX предназначен для создания MSI-файлов x86 и x64 (я использую WiX Tips и Рекомендации . Я также сохраняю папку установки приложения в реестре для крупных обновлений (я использую свойство APPLICATIONFOLDER и идентификатор каталога - вместо INSTALLLOCATION - согласно требованиям WixUI_Advanced).

В последовательности WixUI_Advanced имеется ошибка , из-за которой в диалоговом окне "Папка назначения" отображается папка приложения в папке C: \ Program Files (x86) вместо C: \ Программные файлы при работе на 64-битной машине, даже если код правильно устанавливает для папки приложения свойство ProgramFiles64Folder . В комментарии к системе отслеживания ошибок предлагается использовать элемент SetDirectory для установки значения APPLICATIONFOLDER, но нет примера , объясняющего, как это сделать. Когда я попробовал, это действительно имело значение (я также нашел ряд сообщений, в которых рекомендуется использовать настраиваемое действие для установки APPLICATIONFOLDER, но ни один из них не работал у меня). Кто-нибудь знает, как сделать так, чтобы последовательность WixUI_Advanced отображала правильные 'Program Files' папка в 64-битной системе (а также показывать изначально выбранную папку во время основных обновлений)?

Если это поможет, я предоставлю образцы фрагментов WXS, но они в значительной степени соответствуют рекомендациям из StackOverflow WiX Tips и хитрости пост. Кроме того, мой 64-разрядный пакет MSI действительно является 64-разрядным (у меня есть пакет и компоненты, помеченные как «x64»; и он не работает на 32-разрядных платформах). Я использую WiX 3.6 и Visual Studio 2010. .

ОБРАЗЕЦ КОДА:













    





APPLICATIONFOLDER=""


    
        
            

                
            
        
    



    



    




Большое спасибо Саше Бомонту за решение этой проблемы. Вот рабочий пример:












    





APPLICATIONFOLDER=""


    
        
            

                
            
        
    



    



    







    



    
    




14
задан ceztko 29 April 2018 в 11:14
поделиться