users are seeing "MSIGetProductInfo: This action is only valid for products that are currently installed" when launching bootstrapper

Jun 24, 2010 at 3:18 PM

Released software earlier this week. Some customers see the attached error when they launch my bootstrapper. There is no log generated. They see this error immediately & it doesn't load the main dialog. It has been observed on all current versions of Windows, not specific to any one version.

We're using the 1.9 release build (file version shows 1.9.5931.0).

I can e-mail my xml & a link to the bootstrapper over if you'd like to see them but it's not doing anything special which I haven't done for other releases in the past few months using the same build.

Jun 24, 2010 at 3:19 PM
Edited Jun 24, 2010 at 3:22 PM

Ah can't attach images to discussions only issues. Lets see if this works.

Edit: copy & paste doesn't work. Uploaded here ->

Jun 24, 2010 at 3:50 PM

The configuration xml would be helpful. You got a product check in your XML? That's the only place where this call is made.

Find which product it checks for, and uninstall it. See if you can reproduce the error. If yes, run setup /log /logfile install.log. Do you get a log?


Jun 24, 2010 at 4:15 PM

There's 5 product checks using upgrade codes in 3 different  components but they should return something meaningful if the product is installed or not. I can't reproduce the error on my virtual machines unfortunately. 4 of the 5 were in a previous release which had no issues.

Sending xml via e-mail.


Jun 26, 2010 at 12:31 AM
Edited Jun 26, 2010 at 12:33 AM

I am pretty sure it's a bug, but not having a repro I can't figure out what's going on. To give some background: InstalledCheckProduct finds all related products via upgrade code, then checks for a property in one of those products. This fails saying - this product is not installed.

Maybe I misunderstand what "related products" means, maybe those include products that aren't installed? MSDN is pretty clear though,, The MsiEnumRelatedProducts function enumerates products with a specified upgrade code. This function lists the currently installed and advertised products that have the specified UpgradeCode property in their Property table.

Jun 26, 2010 at 12:34 AM
This discussion has been copied to a work item. Click here to go to the work item and continue the discussion.
Jun 28, 2010 at 10:17 AM

I changed the code for that check from using an upgrade code to the installers product code instead as a workaround for this release on Friday. Seems to work fine now but it's rather bizarre why it fails for some users on first launch with nothing installed, others with an old version installed and others with the current version installed (and doesn't fail at all for most in any scenario such as our VM's). I'd much rather use an upgrade code check rather than have to remember to author a product code check everytime I change the Product Code in that installer but if you can't hunt it down then we'll have to live with it & hope it doesn't crop up for anyone else.

Cheers for the help as always.

Jun 28, 2010 at 11:50 AM

It's not strange, it's very much likely a bug. Since you have a machine on which it reprduces, can you please build a debug build of dotNetInstaller? Or tell me that you can't and I'll send you some tests?

Jun 28, 2010 at 12:01 PM

We've actually 3 machines that can reproduce it. Unfortunately one is a consultants Vista SP2 laptop in Boston (we're in Glasgow), another is the Sales Directors XP SP3 laptop (out of the office 90% of the time) & the 3rd is one of our customer support team. I generated the log from the support team guy's Vista SP2 desktop & used it to test my work-arounds as he was on holiday last week but I can't interrupt him this week & he doesn't have development knowledge to be able to help debug. I could get him to run some tests though (probably all 3 actually, most people will help us dev's fix stuff in this place, one of the benefits of being in a small/mid-size company) if you would like.