Как объединить две переменные в пути установки

У меня возникла проблема с базовой конфигурацией WIX. Я хочу установить свои файлы в ProgramFiles/NameOfCompany/NameOfProduct. У меня сейчас следующая конфигурация:

<?define ProductName="ProductName" ?>
<?define Manufacturer="CompanyName"?>
<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="INSTALLLOCATION" Name="$(var.ProductName)">
      <Component Id="ProductComponent" Guid="b11556a2-e066-4393-af5c-9c9210187eb2">
        <File Id='SampleAppEXE' Name='SampleApp.exe' Source='ClipboardActiveX.dll' Vital='yes' />
      </Component>
    </Directory>
  </Directory>
</Directory>

Проблема в том, что я получил следующую ошибку, когда пытаюсь установить что-то вроде этой папки1/папки2 в записи каталога INSTALLLOCATION:

The Directory/@Name attribute's value, 'folder1/folder2', is not a valid long name because it contains illegal characters.  Legal long names contain no more than 260 characters and must contain at least one non-period character.  Any character except for the follow may be used: \ ? | > < : / * ".

Я хочу что-то вроде этого:

<?define ProductName="ProductName" ?>
<?define Manufacturer="CompanyName"?>
<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="INSTALLLOCATION" Name="$(var.Manufacturer)\$(var.ProductName)">
      <Component Id="ProductComponent" Guid="b11556a2-e066-4393-af5c-9c9210187eb2">
        <File Id='SampleAppEXE' Name='SampleApp.exe' Source='ClipboardActiveX.dll' Vital='yes' />
      </Component>
    </Directory>
  </Directory>
</Directory>

person AuthorProxy    schedule 19.07.2013    source источник
comment
Хорошо, я нашел эту опцию ‹Directory Id=ManufacturerFolder Name=$(var.Manufacturer)› в этом вопросе stackoverflow.com/questions/13443865/   -  person AuthorProxy    schedule 19.07.2013


Ответы (1)


Вы должны использовать вложенные элементы Directory для вложенных каталогов. Так:

...
<Directory Id="ProgramFilesFolder">
    <Directory Id="Manufacturer" Name="$(var.Manufacturer)">
        <Directory Id="INSTALLLOCATION" Name="$(var.ProductName)">
...
person Tom Blodget    schedule 19.07.2013
comment
Да, спасибо, я думаю, что я попробовал это и получил еще одну ошибку, извините за мою оплошность. - person AuthorProxy; 19.07.2013