Wix 3.5 для создания папки вне установочного корня

Как я могу использовать Wix v3.5 для создания папок вне обычного пути установки?

Ниже создайте папку для моей корневой установки.

<Directory Id="TARGETDIR" Name="SourceDir">

  <Directory Id="INSTALLLOCATION" Name="FolderName">

  </Directory>
 </Directory>

например, если пользователь выберет c :, это будет установлено в c: \ FolderName

Мне нужно создать дополнительные папки в самом C :. Как я могу этого добиться?

Ваше здоровье


person ove    schedule 03.08.2011    source источник


Ответы (1)


Ничто не мешает вам определить другой элемент каталога рядом с INSTALLLOCATION. Затем убедитесь, что соответствующие компоненты ссылаются на эту папку, и в конечном итоге у вас появятся необходимые файлы:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="INSTALLLOCATION" Name="FolderName">
   ...
  </Directory>
  <Directory Id="ANOTHERLOCATION" Name="SecondFolderName">
   ...
  </Directory>
</Directory>

ОБНОВЛЕНИЕ: ниже добавлен образец с элементом CreateFolder.

<DirectoryRef Id="ANOTHERLOCATION">
  <Component Id="comp1" Guid="GUID-HERE" KeyPath="yes">
    <CreateFolder />
  </Component>
</Directory>
person Yan Sklyarenko    schedule 03.08.2011
comment
Но у меня есть что-то, как показано ниже, но это не создает ‹Directory Id = TARGETDIR Name = SourceDir› ‹Directory Id = INSTALLLOCATION Name = FolderName /› ‹Directory Id = SecondFolderNameLocation Name = SecondFolderName /› ‹Directory Id = ThirdFolderNameLocation Name = ThirdFolderName /› / Каталог ›‹/Directory› - person ove; 03.08.2011
comment
Я забыл сказать, что просто хочу создать эти пустые каталоги, не ссылаясь на них в компоненте или где-либо еще. - person ove; 03.08.2011
comment
Если вы хотите создать пустые папки, вам нужно будет создать компонент для каждой, поместить его в нужную папку и создать элемент ‹CreateFolder /›, иначе папка не будет создана. - person Yan Sklyarenko; 03.08.2011
comment
Как присвоить значение пути ANOTHERLOCATION, например, если я хочу, чтобы он был D:\MyFolder1\MyFolder2? - person Mykhailo Seniutovych; 26.01.2018
comment
@MykhailoSeniutovych, как и любой другой объект: msiexec.exe /i "C:\Example.msi" ANOTHERLOCATION="D:\MyFolder1\MyFolder2" - person Yan Sklyarenko; 26.01.2018
comment
Могу я сделать это с помощью кода? Если бы это было свойство, я бы сделал это так: ‹Property Id = ORDERSFOLDER Value = D: \ MyFolder1 \ MyFolder2 /› - person Mykhailo Seniutovych; 26.01.2018
comment
Если не ошибаюсь, можно, но как <SetProperty ... After="CostFinalize">. Давно не работал с установщиком Windows. Попробуйте, не доверяйте предложению :) msdn.microsoft.com/en-us/library/windows/desktop/ - person Yan Sklyarenko; 26.01.2018