The issue is that the two directories below actually resolve to
TARGETDIR in the directory table, because if you don't specify a Name
attribute, then it's essentially the same path as the parent
directory.

    <Directory Id="TARGETDIR" Name="SourceDir">
       <Directory Id="JAWS14USERENUSCRIPTINSTALLPATH" >  <!-- files go
to TARGETDIR by default  -->
         <Component Id="JAWS14DMRECEIVED"
Guid="DC526A92-1C41-44FF-A43B-EED61665493E">
           <File Id="JAWS14DMRECEIVEDFile" Source="..\files\dm_received.wav"/>
         </Component>
       </Directory>
       <Directory Id="JAWS13USERENUSCRIPTINSTALLPATH">  <!-- files go
to TARGETDIR by default  -->
         <Component Id="JAWS13DMRECEIVED"
Guid="D4F32790-4442-47B3-AA2E-C72CF4C65C4B">
           <File Id="JAWS13DMRECEIVEDFile" Source="..\files\dm_received.wav"/>
         </Component>
 </Directory>
       </Directory>

Yes, you're trying to modify the actual paths while your install
executes with AppSearch, but the problem is that the ICE doesn't take
AppSearch into account.  There's good (and bad) reasons for this.
What if someone does an admin install (msiexec /a)? What if the
AppSearch doesn't find those paths so the locations never get
modified?

You can eliminate this error simply by adding a Name attribute to the
offending directories:

    <Directory Id="TARGETDIR" Name="SourceDir">
       <Directory Id="JAWS14USERENUSCRIPTINSTALLPATH"     Name="JAWS 14">
         <Component Id="JAWS14DMRECEIVED"
Guid="DC526A92-1C41-44FF-A43B-EED61665493E">
           <File Id="JAWS14DMRECEIVEDFile" Source="..\files\dm_received.wav"/>
         </Component>
       </Directory>
       <Directory Id="JAWS13USERENUSCRIPTINSTALLPATH"    Name="JAWS 13">
         <Component Id="JAWS13DMRECEIVED"
Guid="D4F32790-4442-47B3-AA2E-C72CF4C65C4B">
           <File Id="JAWS13DMRECEIVEDFile" Source="..\files\dm_received.wav"/>
         </Component>
 </Directory>
       </Directory>

This will mean they don't conflict, even if AppSearch doesn't run.

Thanks

John

On 7 March 2013 15:30, Sean Farrow <sean.far...@seanfarrow.co.uk> wrote:
> Hi all,
> I'm currently putting together a per-user installer that installs somewhere 
> in the users appdata folder.
> I have the following 2 properties defined and referenced:
>     <Property Id="JAWS14USERENUSCRIPTINSTALLPATH">
>       <DirectorySearch Id="UserAppData" Path="[AppDataFolder]">
>         <DirectorySearch Id="FreedomScientificUser" Path="Freedom Scientific">
>           <DirectorySearch Id="JAWSUser" Path="JAWS">
>             <DirectorySearch Id="Version14UserPath" Path="14.0">
>               <DirectorySearch Id="Version14UserSettingsPath" Path="Settings">
>                 <DirectorySearch Id="Version14UserEnuPath" Path="Enu">
>                   <DirectorySearch Id="JAWS14USERENUSCRIPTINSTALLPATH" 
> AssignToProperty="yes" Depth="4">
>                   </DirectorySearch>
>                 </DirectorySearch>
>               </DirectorySearch>
>             </DirectorySearch>
>           </DirectorySearch>
>         </DirectorySearch>
>       </DirectorySearch>
>     </Property>
>     <Property Id="JAWS13USERENUSCRIPTINSTALLPATH">
>       <DirectorySearchRef Id="JAWSUser" Path="JAWS" 
> Parent="FreedomScientificUser">
>         <DirectorySearch Id="Version13UserPath" Path="13.0">
>           <DirectorySearch Id="Version13UserSettingsPath" Path="Settings">
>             <DirectorySearch Id="Version13UserEnuPath" Path="Enu">
>               <DirectorySearch Id="JAWS13USERENUSCRIPTINSTALLPATH" 
> AssignToProperty="yes" Depth="3">
>               </DirectorySearch>
>             </DirectorySearch>
>           </DirectorySearch>
>         </DirectorySearch>
>       </DirectorySearchRef>
>     </Property>
> My components for two features that install the same file from source look as 
> follows:
>     <Directory Id="TARGETDIR" Name="SourceDir">
>       <Directory Id="JAWS14USERENUSCRIPTINSTALLPATH" >
>         <Component Id="JAWS14DMRECEIVED" 
> Guid="DC526A92-1C41-44FF-A43B-EED61665493E">
>           <File Id="JAWS14DMRECEIVEDFile" Source="..\files\dm_received.wav"/>
>         </Component>
>       </Directory>
>       <Directory Id="JAWS13USERENUSCRIPTINSTALLPATH">
>         <Component Id="JAWS13DMRECEIVED" 
> Guid="D4F32790-4442-47B3-AA2E-C72CF4C65C4B">
>           <File Id="JAWS13DMRECEIVEDFile" Source="..\files\dm_received.wav"/>
>         </Component>
> </Directory>
>       </Directory>
> I get the following errors when I attempt to build:
> 3>C:\Work\Hartgen.org\TweenScripts\TweenScripts\Product.wxs(27,0): error 
> LGHT0204: ICE30: The target file 'pqu3tlac.wav|dm_received.wav' is installed 
> in '[TARGETDIR]\' by two different components on an LFN system: 
> 'JAWS14DMRECEIVED' and 'JAWS13DMRECEIVED'. This breaks component reference 
> counting.
> 3>C:\Work\Hartgen.org\TweenScripts\TweenScripts\Product.wxs(22,0): error 
> LGHT0204: ICE30: The target file 'pqu3tlac.wav|dm_received.wav' is installed 
> in '[TARGETDIR]\' by two different components on an LFN system: 
> 'JAWS14DMRECEIVED' and 'JAWS13DMRECEIVED'. This breaks component reference 
> counting.
> Given that I've referenced properties, could someone please explain why I'm 
> getting an ice30, as the documentationseems to inher that I shouldn't be.
> I know I could use the <copyFile> element to get round this, is there any 
> other way if I don't want an extra copy on the system?
> Any help appreciated.
> Regards
> Sean.
> ------------------------------------------------------------------------------
> Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester
> Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the
> endpoint security space. For insight on selecting the right partner to
> tackle endpoint security challenges, access the full report.
> http://p.sf.net/sfu/symantec-dev2dev
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to