2010-03-21 2 views
0

У меня есть набор папок, которые будут установлены в разных макетах для разных пользователей. Для примера:Wix: изменить дерево папок установки

User1: 
    AppFolder 
     Dir1 
     Dir2 
      Dir3 

    User2: 
    AppFolder 
     Bin 
      Dir1 
      Dir2 
     Lib 
      Dir3 

Как это возможно?

+0

Какова ваша причина для этого? Это не очень хорошая идея. –

+0

У меня две разные среды. Для каждой из сред скомпилированные двоичные файлы должны быть расположены по-разному. – Yuri

ответ

0

Не много деталей в вопросе, поэтому мне придется немного угадать. Вы можете обращаться со Каталогами так же, как и с Свойствами. Итак, вы можете сделать что-то вроде:

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder" Name="PFiles"> 
    <Directory Id="AppFolder" Name="PFiles"> 
    <Directory Id="BinFolder" Name="Bin"> 
     <Directory Id="Dir1" Name="Dir1" /> 
     <Directory Id="Dir2" Name="Dir2" /> 
    </Directory> 
    <Directory Id="LibFolder" Name="Lib"> 
     <Directory Id="Dir3" Name="Dir3" /> 
    </Directory> 
    </Directory> 
    </Directory> 
</Directory> 

<SetProperty Id="BinFolder" Value="[AppFolder]" After="CostFinalize">HOW_EVER_USER2_DETECTED</SetProperty> 
<SetProperty Id="LibFolder" Value="[Dir2]" After="CostFinalize">HOW_EVER_USER2_DETECTED</SetProperty> 

Это может быть и не совсем корректно, но это поможет вам приблизиться. Вы также можете использовать элемент CustomAction, который использует атрибуты Directory и Value для перенаправления, если механизм Property не работает отлично.

Также, как и другие упомянули. Это странно. Я предлагаю удалить требование из продукта. ;)

 Смежные вопросы

  • Нет связанных вопросов^_^