Monday, December 07, 2009

Variable (a.k.a Properties) in Visual Studio's Deployment Project

I use Windows Installer Deployment in Visual Studio. It's simple to use and make quite a decent installer and it's good enough. It is basically wrappers and helper-tools around the native Windows Installer service in Windows. However, having start directly using the helper instead of the native one makes me occasionally wondering how to do certain things in the IDE tools which is quite obvious in the native ones. I guess, it's the usual case of convenience versus completeness of using helpers/wrappers/tools versus the native support.

One of the important case of this is when I wanted to write to the registry using some dynamic value (e.g: Destination Path which will be decided by user later) instead of the hardcoded one. I can't find an info on this on the visual studio help on the IDE part and only after some searching around that I got into reading the native Windows Installer service documentation on the "Wind32 and COM Development" part of MSDN. There's a thing called Properties that I could use for this kind of problem. In this case I would need to use "[TARGETDIR]" which later would be substituted on runtime with the installation path.

So, I guess the lesson is when something not clear on the tools/wrapper level try looking on the native/lower level.