View Full Version : Suite: Setup starts each time in maintenance ?

09-30-2011, 03:09 AM
I have build a simple suite containce of two packages.
Both of them are packed msi setups

After build of suite I am trying to test it.
Each time starts the suite-setup in maintenance mode.
Neither suite-setup nor both of components were installed on test PC.

What is wrong, please?

I am using IS2012 as evaluation, still.


10-03-2011, 11:49 AM
That certainly doesn't sound expected. If you have only two packages, both of which are .msi files, have neither installed, have left the default Detection conditions, and your Suite runs in maintenance, this is misbehaving. I would suggest examining the debug log created with the command-line parameter /debuglog for further information on what is being detected.

10-17-2011, 08:44 AM
It might be your detection condition for the packages? If set to "Any", it will think the packages are already installed, even if they are not.


10-17-2011, 10:05 AM
Paul is correct. I had the same problem... see this post.

10-17-2011, 10:47 AM
Ah, sounds like I need better wording. As you've pointed out, there's a subtle but important difference between the default (empty) condition, and a condition of Any (which, without sub-conditions, effectively means Always).

10-17-2011, 02:50 PM
Seems like a few of us are having a bit of difficulty with program flow. So setting the 'Detection Condition' to "None" makes things work as we want for first time install. But that is not all there is to it, because now it will never go into 'Program Maintenance'! What's the best way to do that if already installed?
Under 'Detection Condition' and 'None'... do I add 'MSI Package' and then put in the GUID? That does not seem to work. Furthermore, this is getting a bit ugly since I have 5 packages and since the grabbing of files/folders is not dynamic, that means I need to delete and re-add the package each time the package changes. Of course I then have to add back all of this stuff. Do I then need to come up with command lines for Repair, Modify, and Remove?

10-18-2011, 11:44 AM
My suggestion for your use case would be to (until we have Dynamic Links), create a new throw-away project to get an updated static link of all the files, then use an xml or text editor to copy and paste its files into your real project. It's not great, but it will let you avoid losing configuration, GUIDs, etc. If you want to get fancy, you could automate this with some code (vb, c#, whatever you fancy), and just run an update against the main project.

10-18-2011, 01:35 PM
Thanks for that answer. What about the program flow issue? Seems like I am stuck with it either:
1. Always going to Maintenace Mode (to stop this, set Detection Condition to None).
2. After doing the above, it will NEVER go to Maintenance Mode... even when it should.
What is the suggested method to resolve?

10-18-2011, 02:12 PM
Detection conditions should reflect the state of the machine with regards to the package they are defined upon, and will only function correctly if installing or uninstalling the package will change their value. So don't use Any, All, or None with no children; instead check for something that changes.

I'm unclear why your use of "MSI Package" didn't work; it should be a good way to go to detect an MSI you're not installing as an MSI package (just set the product code and probably the version information). Another way would be a "Registry Exists" for the package's uninstall key.

11-02-2011, 07:20 AM
No matter what I put in the condition (NONE or ANY) with package code, or Product code, or Product code and Product version, I get the error:
An invalid condition was encountered:
Type MsiInstalled
Error: 0x80070057
Any ideas?

11-02-2011, 09:44 AM
Forget it - Figured that part out.

11-02-2011, 04:49 PM
Good to hear. I probably would have had to ask for your .issuite file (or for you to post the block of XML including the condition), but even better you tracked it down yourself.

01-03-2012, 02:55 PM
What did you do to resolve the "invalid condition" error, rguggisberg? I am getting the same error no matter how I set up my detection condition.


01-03-2012, 03:10 PM
It has been a while since I did that and not sure I remember exactly what I was doing wrong... I think it had something to do with the fact that I did not complete the condition.
I used "All"... but then you need to click the green + on the right and make selections. I used:
MSI Package
Product code= {xxx...}, where the xxx... is the product code from my Basic MSI project.
Product Version (current version)
Comparison Equal

01-03-2012, 04:26 PM
Aha! I found from another post that I needed to use hive abbreviations such as HKLM instead of the entire hive name for Registry Compare and Registry Exist.