Does anyone know why MS thought that "packing" GUIDs was a good idea? What purpose can it actually serve, apart from saving a few bytes storing fewer dash and brace characters?

Anyway, here's some code to ease your headache. It's not mine originally: I pinched from InstallSite.org and tidied it up a bit.strCode = "{24B76264-FE15-4A02-B4FE-E527003E6FB9}"
strMungedCode = "B38F40E19BA21034E97F8E36707FC927"

I was just gonna say, until I saw VBScab's post, that we wrote a function to convert ProductCode to the encoded/munged product code. Our code looks just about as ugly. Probably uglier, actually.

I think Microsoft, much like Stretch Bart Simpson, likes to use their powers to annoy.

Going back to the original post, we're neglecting to ask a very basic question: WHY? Why would you want to change the msi filename after it's been registered? Why not rename the file before you install it?

All the Best Practices champions should be telling you not to mess with the Windows Installer registry, right?