Подтвердить что ты не робот

Генерируемые теплом файлы не могут найти каталог SourceDir

Я запускаю тепло для создания файла wxs. Код выглядит следующим образом.

Я хочу добавить все файлы из dir.prompts в файл wxs в установщике. И я добавил, что это часть процесса автоматической сборки (так что я не могу изменить файл wxs после его создания).

Создается файл wxs, и он выглядит примерно так: Тем не менее, затем Свет жалуется, что не может найти, где находится SourceDir\Valid.wav. Поэтому, я думаю, мой вопрос в том, является ли SourceDir каталогом, в котором я читаю файлы, или какой-либо магической директорией, о которой я не знаю? Большое спасибо.

 <Fragment>
    <ComponentGroup Id="COMPONENTS">
        <Component Id="dmp120F8C2794******" Directory="dir31A7EE61C56025FE2564A81E28E8C132" Guid="{6D40EBC0-***-***-B972-**********}">
            <File Id="fil919100C2******D045EC131" KeyPath="yes" Source="SourceDir\Valid.wav" />
        </Component>



<exec program ="${dir.wix}\heat.exe">
  <arg value = "dir"/>
  <arg line = "${dir.prompts}"/> 
  <arg value= "-gg"/>
  <arg line="-cg &quot;COMPONENTS&quot;"/>
  <arg line = "-out  &quot;${dir.thisinstaller}\\COMPONENTS.wxs&quot;"/> 
</exec>
4b9b3361

Ответ 1

Вы должны добавить -var-переключатель в командную строку для нагрева:

Из справки heat.exe:

-var VariableName заменить файл /@Source = "SourceDir"

с препроцессором или переменной wix. Например:

-var var.MySource

станет файлом /@Source = "$ (var.MySource)\myfile.txt"

и

-var wix.MySource

станет файлом /@Source = "! (wix.MySource)\myfile.txt"

Ответ 2

Обратите внимание, что свет будет искать дополнительный SourceDir для вашего файла, если вы добавите их в путь поиска с помощью -b

например.

light.exe -b Foo ...

(От: fooobar.com/info/435127/...)