тепловые файлы не могут найти каталог SourceDir - PullRequest
14 голосов
/ 13 декабря 2011

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

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

Файл wxs сгенерирован и выглядит примерно так:Однако Light жалуется, что не может найти, где находится 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>

Ответы [ 2 ]

16 голосов
/ 05 сентября 2012

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

, например

light.exe -b Foo ...

(Ответ от: https://stackoverflow.com/a/6920979/640282)

13 голосов
/ 21 декабря 2011

Вы должны добавить ключ -var к командной строке heat:

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

-var VariableName замещающий файл / @ Source = "SourceDir"

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

-var var.MySource

станет File / @ Source = "$ (var.MySource) \ myfile.txt"

и

-var wix.MySource

станет File / @ Source = "! (Wix.MySource) \ myfile.txt"

...