У меня есть два файла компонента один для каждого приложения. Я передаю параметр MachineName в msi. (Example: MachineName = A) Я хочу скопировать все файлы, упомянутые в Component1.wxs, и создать Directory-A, ApplicationA и AppPoolA.Установщик Wix создает компоненты на основе параметра, переданного в msi
Приведенный ниже код работает частично. но он создает и AppPool, и создает оба каталога все время. Как предотвратить создание каталогов-B и AppPoolB при MachineName = A?
Component1.wxs
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="Dir-A">
<Component Id="cmp04AF5786493B45809EFC4A5D12FFB07B" Guid="{6B67F4D0-81AE-47D5-9C3E-1119A560FCAE}">
<File Id="fil04AF5786493B45809EFC4A5D12FFB07B" KeyPath="yes" Source="testA.html" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="Dir-AFiles">
<ComponentRef Id="cmp04AF5786493B45809EFC4A5D12FFB07B" />
</ComponentGroup>
</Fragment>
</Wix>
Component2.wxs
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="Dir-B">
<Component Id="cmpEBBDC1C336C0421C9AFFF92D4F109355" Guid="{7D5AB6CC-A193-4AC2-827E-806077990149}">
<File Id="filEBBDC1C336C0421C9AFFF92D4F109355" KeyPath="yes" Source="testB.html" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="Dir-BFiles">
<ComponentRef Id="cmpEBBDC1C336C0421C9AFFF92D4F109355" />
</ComponentGroup>
</Fragment>
</Wix>
В моей Product.wxs
<Property Id="MachineName" />
<iis:WebSite Id="TargetWebsite" Description="Default Web Site or 80 port" xmlns="http://schemas.microsoft.com/wix/IIsExtension">
<iis:WebAddress Id="TargetWebsite" IP="*" Port="80" />
</iis:WebSite>
<Feature Id="IISFeature" Title="IIs" Level="1">
<ComponentRef Id="AppPoolComponentA"/>
<ComponentRef Id="AppPoolComponentB"/>
</Feature>
<!--Do this if MachineName = "A"-->
<Feature Id="FeatureA" Title="Feature A" Level="1">
<Condition Level="1"><![CDATA[MachineName = "A"]]></Condition>
<ComponentGroupRef Id="Dir-AFiles" />
<ComponentRef Id="ComponentA"/>
</Feature>
<!--Do this if MachineName = "B"-->
<Feature Id="FeatureB" Title="Feature B" Level="1">
<Condition Level="1"><![CDATA[MachineName = "B"]]></Condition>
<ComponentGroupRef Id="Dir-BFiles" />
<ComponentRef Id="ComponentB"/>
</Feature>
<!--Do this if MachineName = "A"-->
<Component Id="AppPoolComponentA" Guid="{044A3132-C4F4-422A-836B-46BCF172D720}" Directory="TARGETDIR" Permanent="yes">
<iis:WebAppPool Id="AppPoolA" Name="AppPoolA" ManagedRuntimeVersion="4.0" ManagedPipelineMode="integrated"/>
</Component>
<!--Do this if MachineName = "B"-->
<Component Id="AppPoolComponentB" Guid="{D651DF9C-D80D-4F3E-BE7B-DB2BBA9D24C8}" Directory="TARGETDIR" Permanent="yes">
<iis:WebAppPool Id="AppPoolB" Name="AppPoolB" ManagedRuntimeVersion="4.0" ManagedPipelineMode="integrated"/>
</Component>
<Directory Id="TARGETDIR" Name="SourceDir">
<!--Do this if MachineName = "A"-->
<Directory Id="Dir-A" Name="Directory-A">
<Component Id="ComponentA" Guid="{C25BD2E1-9539-45E3-BF9B-B4DD8FB6DB47}">
<Condition><![CDATA[MachineName = "A"]]></Condition>
<iis:WebVirtualDir Id="VD-A" Alias="DirectoryA" Directory="Dir-A" WebSite="TargetWebsite" xmlns="http://schemas.microsoft.com/wix/IIsExtension">
<iis:WebApplication Id="ApplicationA" Name="DirectoryA" WebAppPool="AppPoolA"/>
</iis:WebVirtualDir>
<CreateFolder/>
</Component>
</Directory>
<!--Do this if MachineName = "B"-->
<Directory Id="ConsoleComponentsDir" Name="Directory-B">
<Component Id="ComponentB" Guid="{EA11875E-87A3-41EC-B60F-D8CA2CF2CB59}">
<Condition><![CDATA[MachineName = "B"]]></Condition>
<iis:WebVirtualDir Id=VD-B" Alias="DirectoryB" Directory="ConsoleComponentsDir" WebSite="TargetWebsite" xmlns="http://schemas.microsoft.com/wix/IIsExtension">
<iis:WebApplication Id="ApplicationB" Name="DirectoryB" WebAppPool="AppPoolB"/>
</iis:WebVirtualDir>
<CreateFolder/>
</Component>
</Directory>
</Directory>