Visual Studio 2003
First time I ever used Visual Studio 2003 was in May 2006. Up until that date I keept using that good old Visual Studio 6.0. It took me like 3 years to get down to it. Software is such a fast moving industry

!!!
MSI installer / Setup Project
Nowadays they have that nice MSI installer system on Windows. Using Visual Studio 2003 you can create a
Setup Project to produce an MSI installer. Once you get use to it, it seems an easy way to produce MSI. Once you get use to it

. In fact there are a few things that are quite frustrating at first.
Conditional shortcut installation
In my first
Setup Project I just wanted to install shorcuts conditionally. Believe me or not but doing that is not intuitive at all. It took me some looking up on the internet until I found that
page. Shortcuts to a file are installed if the file itself is installed. So you have to fill in the
condition property in the file itself rather that in the shortcut directory. As a result if you have various shorcuts to the same file that you want to install conditionally you have to have multiple times the same file in your
Setup Project. Hope it all makes sense to you. Mmmmh probably not...
Launching an EXE after installation
I also wanted to launch an EXE at the end of the installation process. There again it's a very common thing to do for an installation program but the solution I came up with is not so straight forward. Mind you there might be an easier solution. By adding an item in the
Custom Actions page you can easily execute a program you are installing. Now the problem is that the installer actually waits for that program to finnish before completing. So what I wrote a
launcher executable to launch the program I just installed. So my
launcher executes, launches the installed progam and complete so the installer itself can complete. The
launcher takes the full path to the program to execute as an argument. This is done by using
[TARGETDIR] in the
argument property of the
Custom Action object.
Killing a process upon uninstallation
If the program you are uninstalling is a resident executable you surely want to terminate that process upon uninstallation. Here again I used
Custom Actions to do that and wrote an EXE to kill the process. The process name is given using the
argument property in
Custom Action object.