In my installer, I have two optional features, which are plugins for versions 5 and 6 of the same software. They install the same file (same name, same binary content) into the "plugins" folder of the applications.
But I have the following error:
C:\Users\FooBar\Documents\project\project.wxs(281) : error LGHT0204 : ICE30: The target file '0egx-0x3.dll|appv5plugin.dll' is installed in '[TARGETDIR]\plugins\' by two different components on an LFN system: 'Comp_ThisAppV5_plugin' and 'Comp_ThisAppV6_plugin'. This breaks component reference counting.
I have tried:
- Using the same file, and both
components
use it asSource
- Copying the file into two project subfolders, one for each
component
But stills, WiX refuses to build.
wxs file details:
Install directories for TheApp v5 and v6 are searched for in the registry:
<Property Id="PROP_APPV5PATH"> <RegistrySearch Id='RegSearch_AppV5Path' Type='raw' Root='HKLM' Key='SOFTWARE\TheCompany\TheApp\5.0' Name='Installdir' Win64="yes"/> </Property> <Property Id="PROP_APPV6PATH"> <RegistrySearch Id='RegSearch_3AppV6Path' Type='raw' Root='HKLM' Key='SOFTWARE\TheCompany\TheApp\6.0' Name='Installdir' Win64="yes"/> </Property>
Separate components:
<Directory Id="DIR_APPV5"> <Directory Id="Dir_AppV5Plugins" Name="plugins"> <Component Id="Comp_ThisAppV5_plugin" Guid="*"> <File Id="appv5plugin_dll" Source="files\plugins\appv5\app_plugin.dll" KeyPath="yes"/> </Component> </Directory> </Directory> <Directory Id="DIR_APPV6"> <Directory Id="Dir_AppV6Plugins" Name="plugins"> <Component Id="Comp_ThisAppV6_plugin" Guid="*"> <File Id="appv6plugin_dll" Source="files\plugins\appv6\app_plugin.dll" KeyPath="yes"/> </Component> </Directory> </Directory>
Two install directories:
<SetDirectory Id="DIR_APPV5" Value="[PROP_APPV5PATH]" /> <SetDirectory Id="DIR_APPV6" Value="[PROP_APPV6PATH]" />
Two separate features
<Feature Id="Feat_ThisAppV5_plugin" Title="Plugin for App V5" ConfigurableDirectory="DIR_APPV5" Level="1000" AllowAdvertise='no' InstallDefault='local' Absent='allow'> <ComponentRef Id="Comp_ThisAppV5_plugin"/> </Feature> <Feature Id="Feat_ThisAppV6_plugin" Title="Plugin for App V6" ConfigurableDirectory="DIR_APPV6" Level="1000" AllowAdvertise='no' InstallDefault='local' Absent='allow'> <ComponentRef Id="Comp_ThisAppV6_plugin"/> </Feature>