Включить все файлы в определенном каталоге в пакет MSI - PullRequest
10 голосов
/ 01 марта 2012

У меня есть каталог, содержащий несколько файлов, которые я хочу включить в сборку MSI-пакета по проекту Wix.

/database
/database/migration11.txt
/database/migration21.txt
/database/migration32.txt

Эти файлы часто меняются или добавляются новые, иЯ не хочу адаптировать мой Wix файл к каждому новому файлу миграции.

По сути, я хочу сказать, в моем wxs файле включить все файлы в базу данных каталогов ипосле установки поместите их в каталог [INSTALLLOCATION]/database.

Любой способ добиться этого?

ДОБАВЛЕНО:

Только что нашел этот обходной путь: используйте HEAT , но мне любопытно, есть ли другой, рекомендуемый способ.

Ответы [ 2 ]

14 голосов
/ 02 марта 2012

Вы можете использовать задачу в вашем файле wixproj:

<ItemGroup> 
... Your wxs files ...
<HarvestDirectory Include="$(variable)\YourDirectory\">
  <ComponentGroupName>CG_YOUR_GROUP</ComponentGroupName>
  <DirectoryRefId>DIR_REFERENCE</DirectoryRefId>
  <AutogenerateGuids>false</AutogenerateGuids>
  <GenerateGuidsNow>false</GenerateGuidsNow>
  <SuppressUniqueIds>true</SuppressUniqueIds>
  <SuppressCom>true</SuppressCom>
  <SuppressRegistry>true</SuppressRegistry>
  <SuppressRootDirectory>true</SuppressRootDirectory>
  <PreprocessorVariable>var.Property_Preprocessor</PreprocessorVariable>
</HarvestDirectory>
</ItemGroup>

Эта задача вызывает Heat во время сборки.Надеюсь, это поможет вам.

3 голосов
/ 20 января 2017

Если кому-то еще это нужно, здесь - это пример HarvestDirector с wixproj. Благодаря DavidEGrayson .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...