Hi Phil,
Looking through IS log I see ALLUSERS with a value of 1.
Running your script displays "Context 4", so there is a per-machine install
done by IS. I have ALLUSERS set to 1 in my WiX source, but there is no
detection for the product IS created.
A strange thing I saw running your script: the product GUID displayed by your
script next to the product name I'm interested is something like this:
{B607D95A-A73C-444B-87BA-B4E9DBAC4DEE}
while the product code displayed by IS within its UI is:
{F1872E85-C933-44D4-8B88-85D68DD9B103}
which makes me think the UpgradeCode on which I base my <Upgrade> element to
detect the previous version installed out there is wrong (I take it from the
same IS UI which displays the "wrong" product code above). I don't see a
property for retrieving the UpgradeCode within the WindowsInstaller automation
interface in order to check if the UpgradeCode IS installed product has.
Dacian
----- Original Message ----
From: "Wilson, Phil" <[EMAIL PROTECTED]>
To: wix-users@lists.sourceforge.net
Sent: Tuesday, June 5, 2007 7:22:22 PM
Subject: Re: [WiX-users] Upgrade InstallShield package
InstallShield has a custom action (ISSetAllUsers) that
sets ALLUSERS, so looking in the raw MSI file won't tell you
what's going on. It's mostly used when it upgrades previous products, but
nevertheless I recommend
looking at a log to see what's actually happening to the ALLUSERS value
during the InstallShield MSI install.
This script might help. If it reports a
context of 4 if the product is installed per-machine, 2 if for a user and
unmanaged.
Option Explicit
Public installer,
fullmsg, comp, prod, a, fso, pname, ploc, pid,contxt, sid, psorce, pcache,
pvers
Set fso =
CreateObject("Scripting.FileSystemObject")
Set a =
fso.CreateTextFile("prodex.txt", True)
' Connect to Windows Installer
object
Set installer =
CreateObject("WindowsInstaller.Installer")
a.writeline ("Products")
'on
error resume next
For Each prod In installer.ProductsEx("", "",
7)
pid = prod.ProductCode
contxt =
prod.Context
sid=prod.usersid
pname =
prod.InstallProperty("InstalledProductName")
psorce=prod.InstallProperty( "InstallSource")
ploc
=prod.InstallProperty( "InstallLocation")
pcache =
prod.InstallProperty("LocalPackage")
pvers=prod.InstallProperty("VersionString")
a.writeline (pid
& " " & pname & " " & pvers & " installed at <" &
ploc & "> from " & psorce & " Context " &
contxt)
Next
Phil Wilson
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of fiordean
dacian
Sent: Tuesday, June 05, 2007 9:46 AM
To:
wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Upgrade
InstallShield package
Hi
Bob,
ALLUSERS property is not set within the .msi file InstallShield
generates, which means there was a per-user installation (there is something
like ApplicationUsers property with the value ALLUSERS). My .msi uses ALLUSERS
with a value of 1 (so per-machine install). I removed ALLUSERS property from my
.msi.
Also, I switched for a major upgrade now (updated Product &
UpgradeCode GUIDs and Version), here is the Upgrade sequence:
<Upgrade
Id="C466B4D2-CFF9-4880-9910-D95248AAABEB">
<UpgradeVersion OnlyDetect="no" Property="PREVFOUND" Maximum="1.0.1"
IncludeMaximim="no"/>
</Upgrade>
<Upgrade
Id="D1EF72C4-8A32-4526-9F7F-396EC5DAC5C3">
<UpgradeVersion OnlyDetect="yes" Property="NEWERFOUND" Minimum="2.0.0"
IncludeMinimum="yes"/>
</Upgrade>
The first Upgrade refers to
previous InstallShield package out there, second is for current
version.
Well, I had no success yet.
Dacian
-----
Original Message ----
From: Bob Arnson <[EMAIL PROTECTED]>
To:
fiordean dacian <[EMAIL PROTECTED]>
Cc:
wix-users@lists.sourceforge.net
Sent: Tuesday, June 5, 2007 5:23:07
PM
Subject: Re: [WiX-users] Upgrade InstallShield package
fiordean
dacian wrote:
That
would remove my previous installation, right? I'm not sure I want that since
the user might have configured the product (registry keys, config files,
etc.)
and I don't want that to be removed. I just want an upgrade of what's out
there.
Unless you kept all your GUIDs and IDs
the same, you need to do a major upgrade to get to a "clean slate"
install.
On
top of that, it still doesn't look like the previous installation was
detected
(the PREVFOUND property doesn't have a GUID attached to it and no upgarde is
proposed, just normal install).
The most common
reason is that you're trying to mix and match values of ALLUSERS. MSI doesn't
support a per-user install upgrading a per-machine install (or vice versa).
--
sig://boB
http://joyofsetup.com/
Sick sense of humor? Visit Yahoo! TV's Comedy
with an Edge to see what's on, when.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
____________________________________________________________________________________
Get the free Yahoo! toolbar and rest assured with the added security of spyware
protection.
http://new.toolbar.yahoo.com/toolbar/features/norton/index.php
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users