That would not work since it would also prevent upgrading to newer versions, 
which I like allow by having installer uninstall automatically the older 
version.


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Karthik Krishnan
Sent: Monday, July 21, 2008 8:41 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] prevent an old package from installing not working

Your [EMAIL PROTECTED] is set to "*" meaning that it is autogenerated every 
time.
If you set this to a static value, perhaps passed it in as a var the same
way you do the UpgradeCode, Windows Installer should throw an error saying
that another version of the same product is installed. Is this what you are
trying to do?

K

On Sat, Jul 19, 2008 at 1:41 PM, Lucius Fleuchaus <[EMAIL PROTECTED]>
wrote:

> I am following the instructions given at
> http://blogs.technet.com/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspxand
> http://msdn.microsoft.com/en-us/library/aa370840(VS.85).aspx<http://msdn.microsoft.com/en-us/library/aa370840%28VS.85%29.aspx>to
>  prevent an old package from installing.  Below is the WIX file with the
> yellow highlight the additional steps I added.  However, it does not work.
>  It still installs resulting in a second entry in Add/Remove programs.  Can
> someone see what is wrong?  I am using WIX v3.0.3907.0.  Thanks.



>
>    <Product Name="Microsoft $(var.__PRODUCTNAME__)
> v$(var.__BUILDVERSION__)"
>        Id="*"

<?xml version="1.0"?>

<?define __BUILDVERSION__           = 
"$(env._BLDVERMAJOR).$(env._BLDVERMINOR).$(env._BLDNUMMAJOR).$(env._BLDNUMMINOR)"
 ?>
<?define __MANUFACTURERSHORTNAME__  = " Undisclosed"?>
<?define __PRODUCTNAME__            = "Undisclosed" ?>
<?define __PRODUCTNAMESHORT__       = "xxx" ?>
<?define __DIRNAME__                = " Undisclosed xxx" ?>
<?define __SHORTCUTDIRNAME__        = " Undisclosed xxx" ?>
<?define __TARGETROOT__             = $(env.inetroot)\target ?>
<?define __TARGETDIR__              = 
$(var.__TARGETROOT__)\$(env.BUILDTYPE)\$(env.BUILDTARGET) ?>
<?define __UPGRADEIDGUID__          = "8615BFFD-514E-44e6-AFC9-B94DFCAB1E91" ?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>

    <Product Name="Microsoft $(var.__PRODUCTNAME__) v$(var.__BUILDVERSION__)"
        Id="*"
        UpgradeCode="$(var.__UPGRADEIDGUID__)"
        Language="1033"
        Codepage="1252"
        Version="$(var.__BUILDVERSION__)"
        Manufacturer="$(var.__MANUFACTURERSHORTNAME__) Corporation">

        <Package
            Keywords='$(var.__MANUFACTURERSHORTNAME__) $(var.__PRODUCTNAME__) 
$(var.__PRODUCTNAMESHORT__)'
            Description="$(var.__PRODUCTNAME__)"
            Manufacturer="$(var.__MANUFACTURERSHORTNAME__)"
            InstallerVersion="300"
            Languages="1033"
            Compressed="yes"
            InstallPrivileges="limited"
            SummaryCodepage="1252" />

        <Media Id="1" Cabinet="__PRODUCTNAMESHORT__.cab" EmbedCab="yes"/>

        <PropertyRef Id="NETFRAMEWORK30"/>

        <Condition Message='[ProductName] requires Windows XP SP2, Windows 
Server 2003 SP1 or greater.'>
            (VersionNT >= 501 AND ServicePackLevel>=2) OR (VersionNT >= 502 AND 
ServicePackLevel>=1) OR (VersionNT>502)
        </Condition>

        <!--Condition Message='[ProductName] requires the .NET Framework 2.0 or 
higher.'>
            <![CDATA[MsiNetAssemblySupport>="2.0.50727"]]>
        </Condition-->

        <Condition Message="[ProductName] requires Microsoft .NET Framework 
3.0. Search for 'Microsoft .NET Framework 3.0 Download' with your favorite 
internet search engine. The download link should be the top link of the search 
result page.">
            Installed OR NETFRAMEWORK30
        </Condition>

        <!-- Enforce Component Rules on Minor Upgrades by default -->
        <!-- Warning: this only has effect on MSI 3.x and greater -->
        <Property Id='MSIENFORCEUPGRADECOMPONENTRULES' Value='1' Secure='yes' />
        <Property Id="ARPNOMODIFY" Value="1" />
        <Property Id="ARPNOREPAIR" Value="1" />

        <Directory Id='TARGETDIR' Name='SourceDir'>

            <Directory Id='ProgramMenuFolder' Name='PMFolder'>
                <Directory Id='VrtaProgramMenuFolder' 
Name='$(var.__SHORTCUTDIRNAME__)' />
            </Directory>

            <Directory Id="DesktopFolder" Name="Desktop"/>
            <Directory Id="StartMenuFolder" Name="StartupMenu"/>
            <Directory Id='LocalAppDataFolder'>
                <Directory Id='ManufacturerFolder' 
Name="$(var.__MANUFACTURERSHORTNAME__)">
                    <Directory Id='INSTALLDIR' 
Name="$(var.__PRODUCTNAMESHORT__)">
                        <Component Id='MainExecutable' 
Guid='9B90990A-27A6-45af-9CD0-4F5F64474941'>
                            <RemoveFolder Id="RemoveManufacturerFolder" 
Directory="ManufacturerFolder" On="uninstall" />
                            <RemoveFolder Id="RemoveVrtaProgramMenuFolder" 
Directory="VrtaProgramMenuFolder" On="uninstall" />
                            <RemoveFolder Id="RemoveProgramMenuFolder" 
Directory="ProgramMenuFolder" On="uninstall" />
                            <RemoveFolder Id="RemoveProgramFolder" 
On="uninstall" />
                            <RegistryKey Id='keyPathRegKey' Root='HKCU' 
Key='Software\$(var.__MANUFACTURERSHORTNAME__)\$(var.__PRODUCTNAMESHORT__)' 
Action='createAndRemoveOnUninstall'>
                            <RegistryValue Id='keyPathRegVal' 
Name='UpdateAvailable' Type='string' Value=''/>
                            </RegistryKey>
                            <File Id='VRTA.EXE' Name='VRTA.EXE' DiskId='1' 
Source="$(var.__TARGETDIR__)\VRTA.EXE" Vital="yes" ReadOnly="yes">
                                <Shortcut Id="VrtaShortcutDesktop" 
Directory="DesktopFolder" Name="$(var.__MANUFACTURERSHORTNAME__) 
$(var.__PRODUCTNAME__)" />
                                <Shortcut Id="VrtaShortcutStartMenu" 
Directory="StartMenuFolder" Name="$(var.__MANUFACTURERSHORTNAME__) 
$(var.__PRODUCTNAME__)" />
                            </File>
                            <File Id="VRTA.PDB" Name="VRTA.PDB" DiskId='1' 
Source="$(var.__TARGETDIR__)\VRTA.PDB" Vital="no" ReadOnly="yes">
                            </File>
                        </Component>
                    </Directory>
                </Directory>
            </Directory>
        </Directory>

        <Feature Id='Complete' Level='1'>
            <ComponentRef Id='MainExecutable' />
        </Feature>

        <Upgrade Id='$(var.__UPGRADEIDGUID__)'>
          <UpgradeVersion Maximum="$(var.__BUILDVERSION__)" 
IncludeMinimum="yes" Minimum="0.0.0.0" IncludeMaximum="no" Property="ISUPGRADE" 
IgnoreRemoveFailure="yes"/>

          <UpgradeVersion Minimum="$(var.__BUILDVERSION__)" IncludeMinimum="no" 
OnlyDetect="yes" Property="NEWPRODUCTFOUND" />
          <UpgradeVersion Minimum="2.3.0" IncludeMinimum="yes" 
Maximum="$(var.__BUILDVERSION__)" IncludeMaximum="no" Property="UPGRADEFOUND" />
        </Upgrade>

        <CustomAction Id="LaunchExe" FileKey="VRTA.EXE" ExeCommand= "" 
Execute="immediate" Return="asyncNoWait" />

        <!-- Prevent downgrading -->
        <CustomAction Id="PreventDowngrading" Error="Newer version already 
installed." />

        <InstallExecuteSequence>
            <Custom Action="PreventDowngrading" 
After="FindRelatedProducts">NEWPRODUCTFOUND</Custom>

            <!-- The sequence is recommened by 
http://msdn2.microsoft.com/en-us/library/aa371197.aspx -->
            <RemoveExistingProducts After="InstallFinalize" />
            <Custom Action="LaunchExe" After ="InstallFinalize">NOT 
REMOVE="ALL"</Custom>
        </InstallExecuteSequence>

        <!-Not sure why this is needed. Our setup is UI less -->
        <InstallUISequence>
            <Custom Action="PreventDowngrading" 
After="FindRelatedProducts">NEWPRODUCTFOUND</Custom>
        </InstallUISequence>

    </Product>
</Wix>


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to