cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
pjowens
Level 4

No Modify/Repair/Remove in Vista

Basic MSI, installs MS SQL Server 2005 Express, copies a database file and SQL Script attaches it. If a reinstall is needed, a seperate app runs that drops the database before the reinstall begins. Once Install is clicked, there is no Modify/Repair/Remove dialog displayed, and the SQL Script that attaches the database is never run, even though the database file has been installed. Repair DOES run the SQL Script, but the user is never given that option from the CD, only through Add/Remove Programs.

The exact same CD on XP DOES display the Modify/Repair/Remove dialog and all works fine. Any ideas what I'm doing wrong?

TIA
-Pat
Labels (1)
0 Kudos
(5) Replies
Stefan_Krueger
Level 9

A log might tell you.
Sounds like maybe the application is installed in another user context (per-machine vs. per-user).
Stefan Krueger
InstallSite.org
0 Kudos
pjowens
Level 4

Hi, Stefan.

I've been pouring over the log file trying to make sense of it. It seems to be doing a per user install, according to this line:

MSI (s) (34:14) [09:16:44:993]: Package name retrieved from configuration data: 'AmbestAppraisal.msi'
MSI (s) (34:14) [09:16:44:993]: Determined that existing product (either this product or the product being upgraded with a patch) is installed per-user.

But I can't find anywhere in IS2008 to set or change this. Where and when is it determined?

This line from the logfile tells me that the database file (.mdf) itself is installing and the component that is supposed to run the SQLscript:

MSI (s) (34:14) [09:16:45:351]: Feature: Appraisal_database; Installed: Local; Request: Null; Action: Null
MSI (s) (34:14) [09:16:45:351]: Component: AttachDatabase; Installed: Local; Request: Null; Action: Null

But this tells me that the scripts aren't scheduled to run, even though they ARE set to run on the Runtime tab in SQLscripts view:

Action 9:18:15: ISSQLServerInstall.
1: Processing the SQL connection 'SQLConnection2'...
1: Determining if there is at least one SQL script scheduled to execute under the connection...
1: The SQL script 'NewScript02' is not scheduled to execute. Script Execution=RunOnInstall, Action=Install, Component State=None, Schema=
1: No SQL scripts scheduled to execute under the connection...Skip.
1: Skip the SQL connection 'SQLConnection2'. There is no script to execute under this connection.
1: Processing the SQL connection 'SQLConnection1'...
1: Determining if there is at least one SQL script scheduled to execute under the connection...
1: The SQL script 'NewScript01' is not scheduled to execute. Script Execution=RunOnInstall, Action=Install, Component State=None, Schema=
1: No SQL scripts scheduled to execute under the connection...Skip.
1: Skip the SQL connection 'SQLConnection1'. There is no script to execute under this connection.


As I say, they run just fine on XP, but not VISTA unless it goes through Maintenance mode, which isn't offered to the user unless they go through Add/Remove Programs.

Would this have anything to do with the REINSTALL property?

-Pat
0 Kudos
Stefan_Krueger
Level 9

But I can't find anywhere in IS2008 to set or change this. Where and when is it determined?

The ALLUSERS property.

MSI (s) (34:14) [09:16:45:351]: Feature: Appraisal_database; Installed: Local; Request: Null; Action: Null
MSI (s) (34:14) [09:16:45:351]: Component: AttachDatabase; Installed: Local; Request: Null; Action: Null


The component is already installed locally and the request is null, so it stays that way. I believe the SQL script only runs when the component gets installed (for the first time).
Stefan Krueger
InstallSite.org
0 Kudos
pjowens
Level 4

Thanks for the reply, Stefan.

But where is the ALLUSERS property found? It doesn't appear in the Property Manager, although there is a property named "ApplicationUsers" with a value of "AllUsers". That property is also the only one that appears in Direct Editor of the msi.

If I create an ALLUSERS property, what do I set the value as? I can't even find that info in the MSDN library. I find that it's a Restricted Public Property, but nothing telling me what it's settings should be.

And how do I get the SQL Script to run on every install, not just the first? As I say, it works just fine on XP.

-Pat
0 Kudos
pjowens
Level 4

Okay, I figured out how to get the SQL Script to run on every reinstall. I associated the SQL Script with the component that copies the database file and now it works in VISTA.

Still can't figure why I get no Maintenance screen in VISTA, though. Oh, well.

-Pat
0 Kudos