Creating Installers for Legacy Windows Applications
Much of my work is focused on Configuration Management in an IT setting. But I have also had the pleasure of working on projects that were more product focused. When you need to distribute windows applications to hundreds or perhaps thousands of users then creating automated script to install and configure the Windows Application is an absolute requirement. Whenever possible, I try to keep my installation procedures as simple as possible. But it is frequently a requirement to handle a fair amount of complexity when creating installers for Windows. With C# and .net Microsoft has provided some pretty robust tools including the MS Build scripting language and ClickOnce which makes it very easy to embed a unique and immutable version ID into every C# Assembly (which us CM folks refer to as configuration items). You may still find yourself having to create installation procedures for legacy windows applications that do not use the .net managed platform. Here is how you can approach this task.
The first consideration is to ascertain which versions of Windows you will be required to support. This is obviously a moving target and you will need to consider how often you will need to update your procedures as Windows evolves. You can create a windows installer right from the Visual Studio interface but there are also a number of other Windows installers to choose from.
Here is a partial list:
I have found that some installation scripting languages are more complex than others. Sometimes the complexity is necessary to handle customization including modifications to the Windows registry. Make sure that you also test to verify that the user has sufficient privileges to make the desired changes as many organizations limits admin rights and your installation procedures may fail in very subtle and unpredictable ways. Another issue that I have run into is dependence upon a third party installation depot. Trusting a third party to host your installation can have its advantages but also comes with some risk. The worst part is that you are ceding control to another company who may have very different priorities than you do. Obviously, in this instance you need to have a clear and enforceable Service Level Agreement (SLA). You also need to have a plan B just in case the vendor simply cannot perform.
Windows has been around a long time and there are lots of ways to handle automated installation procedures. Make sure that you drop me a line and tell me about your own experiences creating Windows installation procedures!
More articles by this author