I've tried most of the answers on the topic in this forum and other forums, but I still have this problem.

I want to update a bundle version and when I build and install the installer, it should upgrade a previous installation and not create two records in "Programs and Files". 

I'm using the following code in Product.wxs.

```
<Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0" Manufacturer="miro" UpgradeCode="5ba49b49-25c4-47c0-82da-12bf5310af58">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

<MajorUpgrade AllowDowngrades="no" AllowSameVersionUpgrades="yes" IgnoreRemoveFailure="no" DowngradeErrorMessage="loc.NewerVersionInstalled" Schedule="afterInstallInitialize"/>
    <MediaTemplate />

    <Feature Id="ProductFeature" Title="SetupProject1" Level="1">
        <ComponentGroupRef Id="ProductComponents" />
    </Feature>

</Product>

<Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
            <Directory Id="INSTALLFOLDER" Name="SetupProject1" />
        </Directory>
    </Directory>
</Fragment>

<Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
        <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
         <Component Id="ProductComponent">
     <File Id="file_Exefile" Source="..\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe">

     </File>
         </Component> 
    </ComponentGroup>
</Fragment>

```

I am even considering writing my own update logic based on the Installer Processes and their ProductVersion properties, but there are too many cases to consider.

Can you tell me what is wrong with this Product.wxs ,so I can fix it.

Thanks.

Best regards,
Evgeni Dyulgerov