I've got two problems I need help with, and I hope somebody here can
help me with them.

I'm using WiX 3.0.5210, by the way.

First problem: When I install a (major) upgrade, it's not deleting any
files that were created in the [D_Perl] directory or subdirectories that
were not installed by the MSI.  I thought the RemoveFolder tag did just
that. What else do I need to do?

(Note that if this has to be implemented as a custom action, the custom
action has to be compilable using the MingW-gcc toolchain, instead of
using Visual Studio.  I don't know if that toolchain has the msi import
libraries yet.)

Second problem: The shortcut [C_S_CPAN_Client] is being created, but its
icon [I_cpan.bat] is not being displayed (It gets replaced by the normal
batch file icon, and when I try to change the icon, it says that there
are no icons in the applicable file.)  The icon file referred to is a
copy of the icon file [I_cpanweb.url] being used in [C_S_CPAN_Search],
which IS being displayed.  (I wanted to check and see if the problem
wasn't that I was referring to the same icon file in two different
places.) Am I doing something wrong?

Can anybody help me with either or both of these?

Applicable wxs sections are below, the full files (and all the other
files that are used) are included in
http://csjewell.comyr.com/work/fragments.zip (280,966 byte file)

Yes, it is being created by a Perl script I'm writing, this isn't
hand-written (WAY too much to be hand-written)

Main file: (Perl-Dist-WiX Test Perl.wxs)

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
  <Product Id='7B3EE0A1-4FD7-3766-86DD-B1D06F0C4BE1'
    Language='1033'
        Manufacturer="Curtis Jewell"
        Name="Perl-Dist-WiX Perl Test"
        UpgradeCode="29287F64-E2D6-3E24-91B6-24461B4A6CCA"
        Version="5.10.1" >

    
    <Package Description='Perl for Win32 operating systems.' Id='*'
    Languages='1033'
      Platform='x86' InstallerVersion='200' Compressed='yes'
      InstallPrivileges='elevated' />
    

    <Media Id="1" Cabinet="Perl.cab" CompressionLevel="high"
    EmbedCab="yes" />
    
    
    <CustomAction 
          Id="PreventDowngrading"
      Error="A newer version of Perl-Dist-WiX Perl Test is already
      installed." />
        <Upgrade Id="29287F64-E2D6-3E24-91B6-24461B4A6CCA">
          <UpgradeVersion
            Minimum="5.10.1"
                IncludeMinimum="yes"
            OnlyDetect="yes"
                Language="1033"
                Property="NEWERVERSIONDETECTED" />
          <UpgradeVersion
                Minimum="5.0.0"
                IncludeMinimum="yes"
                Maximum="5.10.1"
                IncludeMaximum="no"
                Language="1033"
                Property="OLDERVERSIONBEINGUPGRADED" />
        </Upgrade>
        <InstallExecuteSequence>
      <Custom 
            Action="PreventDowngrading"
        After="FindRelatedProducts">NEWERVERSIONDETECTED</Custom>
          <RemoveExistingProducts After="InstallInitialize" />
        </InstallExecuteSequence>
    <InstallUISequence>
      <Custom 
            Action="PreventDowngrading"
        After="FindRelatedProducts">NEWERVERSIONDETECTED</Custom>
    </InstallUISequence>
        
    <Condition Message="You need to be an administrator to install this
    product.">
      Privileged
    </Condition>

    <Condition Message="Can only install for all users on the machine.">
      <![CDATA[ALLUSERS = 1]]>
    </Condition>
    
    <Condition Message="Cannot install on Windows 9x or ME systems.">
      <![CDATA[VersionNT]]>
    </Condition>
    
    <Condition Message="Cannot install on Windows NT 4.0 systems.">
      <![CDATA[VersionNT > 400]]>
    </Condition>

    <UIRef Id="WixUI_Minimal" />
    <UIRef Id="WixUI_ErrorProgressText" />
    <UIRef Id="WixUI_Common" />

    <Property Id="INSTALLDIR">C:\WiXPerl</Property>
    
    <Directory Id='TARGETDIR' Name='SourceDir'>
      <Directory Id='INSTALLDIR'>
        <Directory Id='D_Perl' Name='perl'>
          <Directory Id='D_DC5CE757_AEB8_3149_81E1_0EE55B238196'
          Name='bin' />
<!-- ... (and so on for about 200 lines) -->
        <Directory Id='D_License' Name='licenses'>
          <Directory Id='D_FEB85698_C30F_35D7_B48E_EFEF335C9DBA'
          Name='dmake' />
          <Directory Id='D_487F41B9_E194_30D2_93CD_01C3A336AB98'
          Name='gcc' />
          <Directory Id='D_925475BA_C87A_31C3_B650_8C4F7802DA0B'
          Name='mingw' />
          <Directory Id='D_D0DF1DF2_FD07_3F27_9B37_5B905B344ED3'
          Name='perl' />
          <Directory Id='D_E77D7635_0114_3FFD_A827_9CC9EB7A4F68'
          Name='pexports' />
        </Directory>
        <Directory Id='D_Cpan' Name='cpan' />
        <Directory Id='D_Win32' Name='win32' />
      </Directory>
      <Directory Id='ProgramMenuFolder'>
        <Directory Id='D_App_Menu' Name='Perl-Dist-WiX Perl Test' />

      </Directory>
    </Directory>

    <Feature Id='Complete' Title='Perl-Dist-WiX Perl Test 5.10.0'
    Description='The complete package.' Level='1'>
      <ComponentRef Id='C_1B0F58AF_4567_32B8_8639_A6F38538BB2B' />
<!-- ... (and so on for about 2600 lines, and yes, the components that
are in the fragments below are included.) -->
    </Feature>

  <Icon Id='I_cpan.bat'
  
SourceFile='C:\strawberry\perl\site\lib\auto\share\dist\Perl-Dist-WiX\cpan.ico'
  />
  <Icon Id='I_cpanweb.url'
  
SourceFile='C:\strawberry\perl\site\lib\auto\share\dist\Perl-Dist-WiX\cpanweb.ico'
  />
  <Icon Id='I_perldoc.url'
  
SourceFile='C:\strawberry\perl\site\lib\auto\share\dist\Perl-Dist-WiX\perldoc.ico'
  />
  <Icon Id='I_win32.url'
  
SourceFile='C:\strawberry\perl\site\lib\auto\share\dist\Perl-Dist-WiX\win32.ico'
  />

    <Property Id='ARPNOREPAIR'>1</Property>
    <Property Id='ALLUSERS'>1</Property>
    <Property Id='ARPCOMMENTS'>Perl-Dist-WiX Perl Test 5.10.0</Property>
    <Property Id='ARPCONTACT'>Curtis Jewell</Property>
    <Property
    Id='ARPURLINFOABOUT'>http://csjewell.comyr.com/perl/</Property>

    <WixVariable Id='WixUILicenseRtf'
    
Value='C:\strawberry\perl\site\lib\auto\share\dist\Perl-Dist-WiX\License.rtf'
    />

  </Product>
</Wix>

And here's the fragment that tries to remove the folder:
(PerlFolder.wxs)

<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
  <Fragment Id='Fr_RemovePerlFolder'>
    <DirectoryRef Id='D_Perl'>
      <Component Id='C_RemovePerlFolder'
      Guid='F26F0747-91C7-367A-87D5-D8AFF00AC946'>
        <RemoveFolder Id='RF_Perl' On="uninstall"/>
      </Component>
    </DirectoryRef>
  </Fragment>
</Wix>

And here's the fragment that provides the shortcut icons. (Icons.wxs)

<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
  <Fragment Id='Fr_Icons'>
    <DirectoryRef Id='D_App_Menu'>
      <Component Id='C_S_CPAN_Client'
      Guid='8C96CA50-D0BE-35D6-954C-B95F7EA03698'>
        <Shortcut Id='S_CPAN_Client'
                  Name='CPAN Client'
                  Description='CPAN Client'
                  Target='[D_DC5CE757_AEB8_3149_81E1_0EE55B238196]cpan.bat'
                  Icon='I_cpan.bat'
                  WorkingDirectory='D_DC5CE757_AEB8_3149_81E1_0EE55B238196'
                  />
        <CreateFolder Directory="D_App_Menu" />
      </Component>
      <Component Id='C_S_CPAN_Search'
      Guid='4518C5B7-2BE7-3513-9DB0-1A4D8E1C6340'>
        <Shortcut Id='S_CPAN_Search'
                  Name='CPAN Search'
                  Description='CPAN Search'
                  Target='[D_Win32]CPAN Search.url'
                  Icon='I_cpanweb.url'
                  WorkingDirectory='D_Win32' />
        <CreateFolder Directory="D_App_Menu" />
      </Component>
      <Component Id='C_S_Perl_5.10.0_Documentation'
      Guid='B7CE40B2-F2C5-3999-8CFE-4382E7445BA8'>
        <Shortcut Id='S_Perl_5.10.0_Documentation'
                  Name='Perl 5.10.0 Documentation'
                  Description='Perl 5.10.0 Documentation'
                  Target='[D_Win32]Perl 5.10.0 Documentation.url'
                  Icon='I_perldoc.url'
                  WorkingDirectory='D_Win32' />
        <CreateFolder Directory="D_App_Menu" />
      </Component>
      <Component Id='C_S_Win32_Perl_Wiki'
      Guid='A509DF94-1580-3AE9-BCDC-0A3E0E0E08F1'>
        <Shortcut Id='S_Win32_Perl_Wiki'
                  Name='Win32 Perl Wiki'
                  Description='Win32 Perl Wiki'
                  Target='[D_Win32]Win32 Perl Wiki.url'
                  Icon='I_win32.url'
                  WorkingDirectory='D_Win32' />
        <CreateFolder Directory="D_App_Menu" />
      </Component>
      <Component Id='C_RemoveShortcutFolder'
      Guid='B895E2A7-A342-3EA8-A5D0-00BAE2B4B08C'>
        <RemoveFolder Id="D_App_Menu" On="uninstall" />
      </Component>
    </DirectoryRef>
  </Fragment>
</Wix>

--Curtis

--
Curtis Jewell
swords...@csjewell.fastmail.us

%DCL-E-MEM-BAD, bad memory
-VMS-F-PDGERS, pudding between the ears

[I use PC-Alpine, which deliberately does not display colors and
pictures in HTML mail]
--
Curtis Jewell
swords...@csjewell.fastmail.us

%DCL-E-MEM-BAD, bad memory
-VMS-F-PDGERS, pudding between the ears

[I use PC-Alpine, which deliberately does not display colors and pictures in 
HTML mail]


------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to