Wix 3.5 - Как добавить каталог с именем приложения в пользовательский путь

я создаю установщик, используя WiX и Sharpdevelop 4.4 (который использует WiX 3.5).

Я впервые использую Wix, и я постепенно осваиваю его.

У меня есть следующая проблема:

Я использую WixUI_Mondo в качестве пользовательского интерфейса по умолчанию для установщика, и он в основном хорошо подходит для моих нужд, за исключением того, что требуется небольшая настройка.

Когда пользователь настраивает путь по умолчанию к приложению (например, root/pfiles/appname), мне необходимо сохранить каталог «/appname» для нового настроенного пути (так, например, если пользователь выбрал c:\ в качестве пользовательского путь установки, пакет будет установлен в папку c:\appname).

Я пытался найти способ сделать это, и я думаю, что ключом может быть редактирование BrowseDlg WixUI_Mondo, но я до сих пор не нашел способа добиться этого.

Может кто-нибудь помочь мне? Спасибо.

ИЗМЕНИТЬ

Как и просили в комментариях, структура папок довольно проста:

<DirectoryRef Id="TARGETDIR"> <Directory Id="ProgramFilesFolder" Name="Pfiles"> <Directory Id="INSTALLDIR" Name="AppName">


person Epiderma    schedule 13.08.2014    source источник
comment
Можете ли вы поделиться своим кодом структуры каталога?   -  person IlirB    schedule 13.08.2014
comment
Конечно, все просто: <Fragment> <DirectoryRef Id="TARGETDIR"> <Directory Id="ProgramFilesFolder" Name="Pfiles"> <Directory Id="INSTALLDIR" Name="AppName">   -  person Epiderma    schedule 13.08.2014
comment
Хорошо, извините, я все еще учусь форматировать код в комментариях... я новичок во всем этом.   -  person Epiderma    schedule 13.08.2014


Ответы (1)


Один из способов добиться этого — добавить в структуру папку Top, например Company\AppName, например. SomePath\Company\AppName.

Сделайте INSTALLDIR каталогом компании и добавьте статический для вашего AppName, затем не забудьте указать свои компоненты на этот новый каталог.

Пример:

<Fragment>
    <DirectoryRef Id="TARGETDIR">
        <Directory Id="ProgramFilesFolder">
            <Directory Id="INSTALLDIR" Name="Company">
                <Directory Id="Dir_App" Name="AppName"/>

Измените ссылку Dir компонентов на Dir_App вместо INSTALLDIR

Теперь, когда вы меняете путь в диалоговом окне или со свойством через командную строку, изменение будет до INSTALLDIR, после чего будет создана новая папка с именем AppName.

Возможно, это можно сделать без добавления верхней папки, но, вероятно, это будет сложнее.

person IlirB    schedule 13.08.2014
comment
Это уже пробовал. Проблема в том, что пользовательский интерфейс не показывает полный путь, поэтому, даже если пользовательский путь установлен пользователем в C:\ и устанавливается в c:\appname, пользователь видит c:\ и думает, что приложение будет установлено в C:\, и в конечном итоге он может отредактировать его, добавив еще один каталог, чтобы конечный результат был c:\userdir\appname. Я хочу, чтобы это не отображало c:\appname во время редактирования пользовательского интерфейса. Или, может быть, я что-то упускаю. - person Epiderma; 13.08.2014
comment
Я думаю, что понимаю, что вы имеете в виду, что путь, отображаемый в пользовательском интерфейсе, вводит в заблуждение, если вы добавите еще одну папку под INSTALLDIR, и решение этого я не знаю. - person IlirB; 15.08.2014
comment
Да, это проблема, которая у меня есть. Пользователь не видит основную папку в пользовательском интерфейсе и думает, что ее не существует. - person Epiderma; 18.08.2014