2016-12-07 10 views
0

Я пытаюсь добавить файл в установщик, как это, в моем основном файле wxs.Добавить файл в установщик Wix, если он существует

<ComponentGroup Id="Files" Directory="Bin"> 
     <?if $(var.FILE_EXISTS) = "true"?> 
      <Component> 
       <Condition>$(var.FILE_EXISTS) = "true"</Condition> 
       <File Source="$(var.SourceDir)/file.txt"/> 
      </Component> 
    </ComponentGroup> 

Я передаю file_exists через candle.exe с опцией -d

Но его не принимая эффекта. Его не добавляют. Он работает, когда у меня нет условий (только элемент File). Есть идеи?

+0

Я пытаюсь сделать это, потому что файл существует только в некоторых отраслях и все ветви используют один и тот же сценарий установки. – krosty

ответ

0

Насколько я понимаю, условие, о котором вы говорите, является условием построения времени. В принципе, вы хотите контролировать, попадает ли файл в пакет MSI.

Если это правильно, то одна ошибка: <Condition> элемент под <Component>. Это условие времени установки и влияет только на то, что файл установлен.

Другой - это проблема с синтаксисом. Директива <?if?> должна иметь замыкающий элемент.

Принимая во внимание вышесказанное, ваш фрагмент кода может выглядеть следующим образом:

<ComponentGroup Id="Files" Directory="Bin"> 
    <?if $(var.FILE_EXISTS) = "true"?> 
    <Component> 
    <File Source="$(var.SourceDir)/file.txt"/> 
    </Component> 
    <?endif?> 
</ComponentGroup> 
+0

Большое спасибо Яну. Это был элемент дополнительного условия. Взял это, и это сработало !! – krosty

+0

Замечательно, что это помогло! Не забудьте принять полезный ответ выше ;-) –