2016-08-29 4 views
0

У меня есть Feature, который ссылается на ComponentGroup. То, что ComponentGroup определено в Fragment в другом файле и содержит номер Component s.Состояние соединения WiX ComponentGroup

Этот проект является общим для нескольких версий продукта, и я хотел бы сохранить одну версию файла Product.wxs (база кода является общей для версий продукта).

Могу ли я установить условие на ComponentGroup, чтобы определить, включать ли его в программу установки?

ответ

2

Да, вы можете. Фрагмент кода ниже совершенно правильный код WiX:

<Feature Id="MyFeature" Title="Some title" Level="100"> 
    <ComponentGroupRef Id="ComponentGroup1"/> 
    <ComponentGroupRef Id="ComponentGroup2"/> 
    <?if $(var.IncludeAnotherGroup) = true ?> 
    <ComponentGroupRef Id="AnotherGroup"/> 
    <?endif ?> 
</Feature> 

Вы можете поставить значение IncludeAnotherGroup переменных во время сборки, например, например, код (NAnt):

<candle ...> 
    <defines> 
    <define name="IncludeAnotherGroup" value="true" /> 
    </defines> 
    <sources basedir="${paths.wxs}"> 
    <include name="**.wxs"/> 
    </sources> 
</candle> 
+0

Это именно то, что мне нужно. Я вызываю сборку из командной строки с помощью решения visual studio. Я изменяю значение строки версии в моем config.wxi перед созданием установщика (точнее, до создания всей кодовой базы). Могут ли переменные wix быть установлены из командной строки msbuild? – Jon

+0

@ Jon, есть куча официальных документов об использовании MSBuild с WiX: http://wixtoolset.org/documentation/manual/v3/msbuild/ –