Hi...

                Our installers are used internally to install to a farm, so we 
had

<Property Id="TARGETDIR" Value="C:\OurPath" />

In our old Wix 2.0 scripts.  We recently updated to Wix 3.5, and I started 
getting ICE48 warnings.  I googled around on how to do this "properly", and I 
found some posts about moving the definition of the target directory to a 
custom action "at an early stage".

                So I replaced the definition above with

      <Custom Action="SetTarget" Before="CostInitialize" />
      <Custom Action="InstallConfig" Before="InstallFinalize">NOT 
Installed</Custom>
</InstallExecuteSequence>
<CustomAction Id="SetTarget" Property="TARGETDIR" Value="C:\OurPath\" />
<CustomAction Id="InstallConfig" Impersonate="no" Return="check" 
Execute="deferred" FileKey="InstallConfig.exe" ExeCommand="[TARGETDIR]" />

                That did get rid of the warning, but now when I run the 
installers produced most of the subdirectories end up at C:\ instead - except 
for a couple which end up in the right place for reasons I haven't figured out.

                For example, my main msi wxs file has
                <Directory Id="TARGETDIR" Name="SourceDir">
                                <Directory Id="Binaries" Name="Binaries">
                                                <Merge Id="PTCoreModule" 
Language="1033" SourceFile="..\PTCoreModule\bin\Release\PTCoreModule.msm" 
DiskId="1" />
...
                                                <Component Id="InstallConfig" 
Guid="D746C5C0-12CB-4d4a-AA65-361D578F09F5">
                                                                <File 
Id='InstallConfig.exe' Name='InstallConfig.exe' DiskId='1' 
Source='..\InstallConfig\bin\Release\InstallConfig.exe' Vital='yes' />
                                                                <File 
Id='InstallConfig.pdb' Name='InstallConfig.pdb' DiskId='1' 
Source='..\InstallConfig\bin\Release\InstallConfig.pdb' />
                                                </Component>
                                </Directory>
                                <Directory Id="ASP" Name="ASP">
                                                <Merge Id="AspModule" 
Language="1033" SourceFile="..\AspModule\bin\Release\AspModule.msm" DiskId="1" 
/>
                                </Directory>
                                <Directory Id="Ptt" Name="Ptt">
                                                <Merge Id="PttModule" 
Language="1033" SourceFile="..\PttModule\bin\Release\PttModule.msm" DiskId="1" 
/>
                                </Directory>
                </Directory>

                The Component under Binaries ends up in 
C:\OurPath\Binaries\InstallConfig.exe,  but PTCore's contents end up in 
C:\Binaries.

                The AspModule ends up in C:\ASP\, but PttModule ends up in 
C:\OurPath\Ptt.

                So

a)      did I just pick the wrong way to deal with ICE 48?  Or more 
importantly, what did I do wrong?

b)      What's the "right" way?

c)       Any guesses why some directories would seem to work and others not?

Seems like I should just live with the warnings until I figure out how to do it 
right...

Thanks
mark




------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to