How to manage files with same name in Wix?

2019-02-17 15:30发布

问题:

I have some dll compiled either in .Net3.5 or in .Net4.0. (They have the same name)
In wix, I have 2 conditionals features.
Feature A installs .net3.5 dll of my app with ComponentRef Id="Cmp35"
Feature B installs .net4.0 dll with ComponentRef Id="Cmp40"
Features are mutually exclusives, only one feature is installed.

my components:

<?xml version="1.0" encoding="UTF-8"?>  
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">  
    <Fragment>  
        <DirectoryRef Id="INSTALLDIR">  
            <Component Id="Cmp35" Guid="..">  
                <File Id="Behaviors.Assembly" Name="$(var.Behaviors.v3.5.gen.TargetFileName)" Source="$(var.Behaviors.v3.5.gen.TargetPath)" />  
               <File Id="Other.Assembly" Name="$(var.Other.v3.5.gen.TargetFileName)" Source="$(var.Other.v3.5.gen.TargetPath)" />  
           </Component>  
           <Component Id="Cmp40" Guid="...">  
               <File Id="Behaviors.Assembly.4.0" Name="$(var.Behaviors.v4.0.gen.TargetFileName)" Source="$(var.Behaviors.v4.0.gen.TargetPath)" />  
               <File Id="Other.Assembly.4.0" Name="$(var.Other.v4.0.gen.TargetFileName)" Source="$(var.Other.v4.0.gen.TargetPath)" />  
           </Component>  
       </DirectoryRef>  
    </Fragment>  
</Wix>

I have an error during the compilation: error LGHT0204: ICE30: The target file ... is installed in ... by two different components on an LFN system:
It seems I have an issue because the filenames are the same...
Is there a way to manage this? thanks!

回答1:

Those are just warnings from ICE30. If you verified that the Components are truly mutually exclusive then you can ignore the warnings because you did what they told you to. :)



回答2:

I typically get around ICE30 warnings by installing the files to different subdirectories and then using a CopyFile element (DuplicateFile table) to clone the file to the desired directory. This works well when your features or components are mutually exclusive and you want ICE to be quiet.



标签: wix wix3.5