I use InstallShield LE in Visual Studio 2010, but it is very limited and sometimes erroneous. I watched paid versions of InstallShield, but they also have too many restrictions for this price tag.
So, I decided to switch to WiX. A few years ago I had some experience. It was pretty easy to create a simple installer using SharpDevelop using WiX tools.
Now I'm trying to build solutions and tools for WiX. Basically, I need to get the following functions (requested by my client):
when I run the installer, it should check the text file on the server and see if a newer version is available. If so, then the installer should be able to download the updated installer package and run it (are there any bootloader utilities in WiX?)
dependency resolution. The main dependency of my application is .NET 4 (which itself depends on the Windows 3 installer). The installer should prompt the user to automatically download and install them.
logging the installation process, as well as collecting the log file of the dependency installation process. I do not want the user to view various .log files in the event of a failure in the installation of .NET4 or WindowsInstaller3. All information should be collected in one place, and if something fails, I must show the user a custom pop-up dialog box with the ability to save the full installation log file and send it to me
The installer should be able to detect if there is a newer version of my application already installed and show a meaningful customized error message before it exits
The installer should be able to determine if an outdated version of my application is already installed. and prompt the user to exit the installation or uninstall the previous version and install the new version. BTW, no minor component updates are planned, I prefer to reinstall all fresh ones (I think this is a serious update in terms of WindowsInstaller). Installshield LE failed for me, it just showed a window with a message about another product, but did not offer to remove it.
in case of an update, the installer should be able to detect whether some of the application components are being used (application processes are running) and display its own error message, and not just some critical “Installation Error”
I read that it can be a little painful to manage updates, even if I keep my UpgradeCode code intact, because this code is stored in the Windows registry in a compressed way, and also if the user renames the downloaded file, it may get detected as a completely new WindowsInstaller product .. . Or maybe this only applies to MSI files WindowsInstaller and WiX to avoid this problem?
About downloading updates - I also need this functionality in my application. I'm not sure how to implement it effectively, so I can reuse the same code / update download utility in both the WiX installer and my application.
Is it possible to satisfy all these requirements using currently existing WiX tools, or maybe I will need to encode some components from scratch?
Justamartin
source share