Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8476017
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 10, 20262026-06-10T18:03:44+00:00 2026-06-10T18:03:44+00:00

This is gonna take some explaining but here it goes. I need to author

  • 0

This is gonna take some explaining but here it goes.

I need to author a multiple instance MSI which installs dynamic instances – i.e. instances defined when the user installs the package, not hard-coded in the MSI file. Now, I’ve already gone through the pains of creating a bootstrapper and using the MSI api to dynamically create a transform (MST) and apply it to the original MSI; after much tinkering, install and uninstall works fine (I’ll post details as they’re needed).

Basically, the MST contains transforms for ProductCode, ProductName, PackageCode (in Summary Info), changes GUIDs for all components (otherwise uninstall fails in silly ways) and the install location is protected from conflicts by the bootstrapper. Also, the bootstrapper starts the install with the command line parameter MSINEWINSTANCE=1, as detailed here.

However, I’d also like to upgrade an installed instance (via major upgrades), which is the main reason why the UpgradeCode is unique (or so I thought). However after I increment the MSI version and try to start it (again via the bootstrapper and passing in the desired instance’s ProductCode via the MSIINSTANCEGUID property), it fails; the log says:

=== Verbose logging started: 12/13/2011  17:43:56  Build type: SHIP UNICODE 5.00.7601.00  Calling process: C:\Windows\SysWOW64\msiexec.exe ===
MSI (c) (5C:D0) [17:43:56:120]: Font created.  Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

MSI (c) (5C:D0) [17:43:56:120]: Font created.  Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

MSI (c) (5C:34) [17:43:56:120]: Resetting cached policy values
MSI (c) (5C:34) [17:43:56:120]: Machine policy value 'Debug' is 2
MSI (c) (5C:34) [17:43:56:120]: ******* RunEngine:
           ******* Product: D:\TestArea\AMLDC.msi
           ******* Action: 
           ******* CommandLine: **********
MSI (c) (5C:34) [17:43:56:120]: Machine policy value 'DisableUserInstalls' is 0
MSI (c) (5C:34) [17:43:56:135]: MainEngineThread is returning 1625
=== Verbose logging stopped: 12/13/2011  17:43:56 ===

and a UI message pops up saying that ‘the system administrator has set policies to prevent this installation’. Obviously that’s not true (the policies would appear in the log and a rather more explicit message would be provided).

The 1625 error code seems to correspond to “ERROR_INSTALL_PACKAGE_REJECTED”.

Any ideas to what I could try next? I’m thinking what the MSI engine should try to do in this case is examine the UpgradeCode, apply the original transform (which should be cached and reachable via the product code I give it via the MSIINSTANCEGUID parameter). However it’s clear the engine never reaches that stage (it should be logged in the log file, right?)

Sigh, this has been much more painful than it should have been.

Edit: some time later…

Quick note on changing component GUIDs: it’s only really necessary for non-file components (I have some registry entries I use to keep track of instances). If I don’t change their GUID they aren’t cleaned up correctly at uninstall, as detailed here. For files it works fine if the key paths are different, and I’ve verified that by only changing the registry component ones in my code.

So I’ve learned in the meantime that major upgrades probably won’t work for me unless I change the UpgradeCode for each instance (because FindRelatedProducts only looks at the UpgradeCode, I think), and I tried something else before going there: minor upgrades.

Starting the installer for a new version with /fvamus together with MSIINSTANCEGUID={existing-instance-product-code} seemed to work, right up until I’ve tried adding a new file to the package (which I expect to happen in the future)… when of course it doesn’t work (the component for the new file is not installed at reinstall, of course).

So I’ll probably either have to change the UpgradeCode with the transform and see what that implies, or mess around with the output property of FindRelatedProducts through some custom actions and see if I can convince major upgrades to work that way. However the initial problem (the 1625 error) was precisely with major upgrades so not sure if I can do something about it without knowing the cause. To be entirely clear: what I pasted above is the entirety of the MSI verbose log, it doesn’t seem to do anything before returning with error 1625. I also tried removing all the rows in the Upgrade table of the MSI and there was no change in behavior.

I also can’t spend much more time on this silly issue so if nothing else works I’ll be forced to do a silent uninstall followed by a regular install with the same settings. I cringe at the thought but if it can’t be helped…

Edit: in all fairness, it probably would have gone faster if I didn’t start on the MSI path altogether and coded my own installer from absolute scratch, with gzipped streams and simple xcopy. Even with a msbuild task that would have compressed the files from visual studio or something.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-10T18:03:46+00:00Added an answer on June 10, 2026 at 6:03 pm

    This has been sitting here for quite a while so I thought I’d close it. The way I went in the end was to uninstall the previous instance and do a normal install afterwards. Seems to go pretty well, all things considered; gets the job done.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

This may be rather noobish but I'm gonna ask anyhow. I have a class
In the end this is gonna be a simple responsive slider. problems being the
Ok guys I'm gonna do my best to explain this. I have a list
I have absolutely no idea how to do this, so I'm just gonna go
this is my first question in here, and I would like to ask if
This UITableViews gonna make me crazy! I have UITableViewCell created by - (UITableViewCell *)tableView:(UITableView
I'm trying to take content from a list (but not including the LI tag
I know I'm gonna get down votes, but I have to make sure if
Again this is a homework. But trust me I've tried my best to solve
The code goes something like this: protected bool IsOKToSend() { bool IsOK = true;

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.