Crystal Reports - uninstall old version before installing new - windows

I have created a bundle for my project that checks for Crystal Reports and will install it if it doesn't exist.
My issue is I need to uninstall the old Crystal Reports if it exists first.
Say the user has Crystal Reports v13.0.10 and we need to upgrade them to v13.0.31. SAP requires to uninstall 13.0.10 first before installing 13.0.31. Is this possible using bundle?
Using WiX Toolset v3.11.2.4516. Visual Studio 2015.
Thank you.

There is a feature request for this at https://github.com/wixtoolset/issues/issues/4858, but no one has implemented it yet.
Theoretically, you could add MsiPackages for all of the problematic versions and make their InstallCondition always false. It's probably more practical to write your own ExePackage that uninstalls the problematic versions.

Related

Is Update 3 of Visual Studio 2015 cumulative?

Can I install Visual Studio Community Edition RTM and then Update 3?
Or, do I need to Install Update 1 then 2 then 3?
Yes, it is cumulative. Moreover, each time a new update is released, Microsoft immediately makes sure there is no access to any previous updates. All links to previous updates get redirected to the latest update. (More precisely, all links simply lead to the online installer, which always downloads the latest update).
This is a major PITA, BTW, since there's no immediate solution to new code-breaking bugs that Microsoft often introduces into new updates. Update 3 is quite problematic in that regard.
For this reason, if you already have Visual Studio installed, it is highly recommended to make a snapshot of your system before installing any further VS updates. That way you will always be able to revert to the previous version in case the new update is broken.
The VS install I downloaded (latest one) includes SP3.
So it appears that the current download of VS includes the latest SP updates.

MSI to show uninstalling of old project

I have an Installer project for my application in Visual studio 2010. I was successfully able to make it uninstall the older version of the application before installing the new one by
1. Setting RemovePreviousVersion to false
2. Setting DetectNewInstaller to true
3. Incrementing the project version
4. Creating new product code
Now when I double click my application for installation, I want the the setup wizard to also show that the currently installed application is getting uninstalled before showing the progress bar for fresh installation. How can I do this?
That might be a typo, but you need RemovePreviousVersions=True for the previous version to be uninstalled, as the actual name implies!
Otherwise, this is just the way VS (and most other tools) behave because Windows Installer's upgrades are like that, embedded in the new install. That progress bar behavior includes the uninstall of the old product, not just the fresh install, and the uninstall occurs after the new product has been installed. It's all one transaction.
With another tool you could build your own dialog that says there's an upgrade going on based on the detection of the older product, but generally speaking that's quite rare. Customers typically know what they have installed, and they are well aware that they are about to install an upgrade, that seems to be the assumption behind the default behavior.

Service Pack Setup Error VB6

I am installing an old version of VB6. I had installed a previous version of the software, but uninstalled it. Now I get an error saying 'setup has detected that the service pack version of this system installed is newer that the update you are applying to it'. I searched in the registry for the appropriate keys to modify, however I have not found same. Any help would be appreciated.
Which versions do you have installed of VB6 and of the servicepack?
I suggest you uninstall all VB6 related items, reboot, and then install VB6 again.
After that download servicepack 6 from SP6 from the microsoft site and install that.
If you are still having problems you might try to uninstall all versions of visual studio and install in order of release, so first install VB6 and then install VB.net
I did a reinstall on my machines several times (xp, w7-32b, x7-64b) and never had any problems, but I always installed VB6 first, then its SP6, and then Visual Studio (2005) with its servicepacks, and then checked the windows update to make sure I didn't miss anything.

Prevent Windows registry key from removing when upgrading application to newer version

I have a registry key (in HKEY_LOCAL_MACHINE hive) which must be keeped from older version of the application to the newer, but removed when user completely uninstalls my application. I'm using Visual Studio 2010 setup and deployment project.
I know about increasing build version of the installation package, build version of assemblies and upgrading 'ProductCode'(but keeping 'UpgradeCode' the same). 'RemovePreviousVersion' is set to true. The problem is that when user installs the new version, registry key from previous version is removed (with important data in it) and recreated again. It seems that MSI uninstalls my application before installing the new version. I was tried to set 'RemovePreviousVersion' to false but in this case new version installed independently and both versions of the application appear on the same machine.
It seems to be very common scenario but I couldn't find how to keep registry keys between different versions. If you know how to make this modifying MSI package using Orca it is not a problem (as Visual Studio is very restricted in creating installation packages).
Thanks in advance.
A late scheduling of RemoveExistingProducts action will fix your problem.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa371197(v=vs.85).aspx

Visual Studio Deploy Solution Version Number

Are there any hacks around the normal (and infuriating) Visual Studio Deploy Solution numbering system?
I have many assemblies I'm deploying with a Major.Minor.Build.Revision scheme for assembly versions. When I set the version for the setup.exe/Installer.exe, I can only do Major.Minor.Build. I'm not allow that fourth section for revision. This causes an issue because I key build numbers off date. So if my build is 906 for 09/06/11, I can only install (not uninstall and install, just install) once a day as it will see a previous version with the same version number and say a previous version is blocking install.
Besides using InstallShield (can't use this due to client requirements), are there any hacks to get the normal deploy solution to accept four part versions?
Windows Installer ignores the fourth Product Version field. So as long as you are using MSI packages, there's not much you can do. The old build needs to be manually uninstalled before installing a new build.

Resources