cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Peter_Kosenko
Level 7

Uninstall REMOVE="ALL" requires Media?

I am baffled. What could cause an installer to invoke LastUsedSource during UNINSTALL? I have been working on the next version of an installer that never had this problem. During uninstall it would run from the cached MSI and just uninstall. Now the installer is asking that the Media (CD) be put into the CD-ROM drive before it will run UNINSTALL. That makes no sense. It is also a killer. People don't want to go hunt for the CD when uninstalling their products.

What could causes the installer to invoke the source list when it is uninstalling? Of course, there is no explanation of that anywhere in Microsoft Documentation. Or even of what triggers source use.

I notice "Attempting to use LastUsedSource from source list." WHY?

If REMOVE="ALL" why even require the source?

************

Action ended 17:26:34: CostInitialize. Return value 1.
MSI (s) (A4:C4) [17:26:34:146]: Resolving source.
MSI (s) (A4:C4) [17:26:34:146]: User policy value 'SearchOrder' is 'nmu'
MSI (s) (A4:C4) [17:26:34:146]: User policy value 'DisableMedia' is 0
MSI (s) (A4:C4) [17:26:34:146]: Machine policy value 'AllowLockdownMedia' is 0
MSI (s) (A4:C4) [17:26:34:146]: SOURCEMGMT: Media enabled only if package is safe.
MSI (s) (A4:C4) [17:26:34:146]: SOURCEMGMT: Looking for sourcelist for product {29AEE96F-7B7C-4028-AAE1-573402147486}  why during REMOVE?
MSI (s) (A4:C4) [17:26:34:146]: SOURCEMGMT: Adding {29AEE96F-7B7C-4028-AAE1-573402147486}; to potential sourcelist list (pcode;disk;relpath).
MSI (s) (A4:C4) [17:26:34:146]: SOURCEMGMT: Now checking product {29AEE96F-7B7C-4028-AAE1-573402147486}
MSI (s) (A4:C4) [17:26:34:146]: SOURCEMGMT: Media is enabled for product.
MSI (s) (A4:C4) [17:26:34:146]: SOURCEMGMT: Attempting to use LastUsedSource from source list. <-- shouldn’t need to do this
MSI (s) (A4:C4) [17:26:34:146]: Note: 1: 2203 2: 3: -2147287037
MSI (s) (A4:C4) [17:26:34:146]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.
MSI (s) (A4:C4) [17:26:34:146]: Note: 1: 1706 2: -2147483647 3: SEER-SEM 7.3.msi
MSI (s) (A4:C4) [17:26:34:146]: SOURCEMGMT: Processing net source list.
MSI (s) (A4:C4) [17:26:34:146]: Note: 1: 1402 2: UNKNOWN\Net 3: 2
MSI (s) (A4:C4) [17:26:34:146]: Note: 1: 1706 2: -2147483647 3: SEER-SEM 7.3.msi
MSI (s) (A4:C4) [17:26:34:146]: SOURCEMGMT: Processing media source list.
MSI (s) (A4:C4) [17:26:34:146]: Note: 1: 1706 2: -2147483647 3: SEER-SEM 7.3.msi
MSI (s) (A4:C4) [17:26:34:146]: SOURCEMGMT: Processing URL source list.
MSI (s) (A4:C4) [17:26:34:146]: Note: 1: 1402 2: UNKNOWN\URL 3: 2
MSI (s) (A4:C4) [17:26:34:146]: Note: 1: 1706 2: -2147483647 3: SEER-SEM 7.3.msi
MSI (s) (A4:C4) [17:26:34:146]: Note: 1: 1706 2: 3: SEER-SEM 7.3.msi
Action start 17:26:34: ResolveSource.
MSI (c) (1C:0C) [17:26:34:146]: User policy value 'SearchOrder' is 'nmu'
MSI (c) (1C:0C) [17:26:34:146]: User policy value 'DisableMedia' is 0
MSI (c) (1C:0C) [17:26:34:146]: Machine policy value 'AllowLockdownMedia' is 0
MSI (c) (1C:0C) [17:26:34:146]: SOURCEMGMT: Media enabled only if package is safe.
MSI (c) (1C:0C) [17:26:34:146]: SOURCEMGMT: Prompting user for a valid source.
MSI (c) (1C:0C) [17:26:34:146]: Machine policy value 'DisableBrowse' is 0
MSI (c) (1C:0C) [17:26:34:146]: Machine policy value 'AllowLockdownBrowse' is 0
MSI (c) (1C:0C) [17:26:34:146]: SOURCEMGMT: Browsing is enabled.
MSI (c) (1C:0C) [17:26:34:161]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

MSI (c) (1C:0C) [17:26:34:161]: Machine policy value 'DisableUserInstalls' is 0
MSI (c) (1C:0C) [17:26:34:161]: SOURCEMGMT: Now checking product {29AEE96F-7B7C-4028-AAE1-573402147486}
MSI (c) (1C:0C) [17:26:34:161]: SOURCEMGMT: Media is enabled for product.
MSI (c) (1C:0C) [17:26:34:161]: SOURCEMGMT: Attempting to use LastUsedSource from source list.
MSI (c) (1C:0C) [17:26:34:161]: SOURCEMGMT: Trying media source DISK1;1.
MSI (c) (1C:0C) [17:26:34:161]: Note: 1: 1706 2: 3: SEER-SEM 7.3.msi
MSI (c) (1C:0C) [17:26:34:161]: SOURCEMGMT: Processing net source list.
MSI (c) (1C:0C) [17:26:34:161]: Note: 1: 1402 2: UNKNOWN\Net 3: 2
MSI (c) (1C:0C) [17:26:34:161]: Note: 1: 1706 2: -2147483647 3: SEER-SEM 7.3.msi
MSI (c) (1C:0C) [17:26:34:161]: SOURCEMGMT: Processing media source list.
MSI (c) (1C:0C) [17:26:34:161]: Note: 1: 1706 2: -2147483647 3: SEER-SEM 7.3.msi
MSI (c) (1C:0C) [17:26:34:161]: SOURCEMGMT: Processing URL source list.
MSI (c) (1C:0C) [17:26:34:161]: Note: 1: 1402 2: UNKNOWN\URL 3: 2
MSI (c) (1C:0C) [17:26:34:161]: Note: 1: 1706 2: -2147483647 3: SEER-SEM 7.3.msi
MSI (c) (1C:0C) [17:26:34:161]: Note: 1: 1706 2: 3: SEER-SEM 7.3.msi
MSI (c) (1C:0C) [17:26:46:083]: Note: 1: 2203 2: 3: -2147287037
MSI (c) (1C:0C) [17:26:46:083]: SOURCEMGMT: Source is invalid due to missingMSI (s) (A4:C4) [17:26:49:802]: SOURCEMGMT: Failed to resolve source
/inaccessible package.
MSI (c) (1C:0C) [17:26:46:099]: Note: 1: 1706 2: -2147483647 3: SEER-SEM 7.3.msi
MSI (c) (1C:0C) [17:26:46:099]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

MSI (s) (A4:C4) [17:26:50:693]: Product: SEER for Software 7.3 -- Error 1706.No valid source could be found for product SEER for Software 7.3. The Windows Installer cannot continue.
Labels (1)
0 Kudos
(6) Replies
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

It appears from the log info that the ResolveSource action is running:
Action start 17:26:34: ResolveSource.


The log should say the action is being skipped because its condition is false. Since it doesn't, either there is no condition on the action or the condition is evaluating to true during uninstall. The ResolveSource action should only run during a first time install and should typically always have a condition of 'Not Installed'. Running ResolveSource any time after first time install could prompt for source if the original source package is unavailable.

Another possibility in addition to the ResolveSource action is a missing cached MSI in C:\Windows\Installer. If this file is missing, the install won't run from Add/Remove Programs.
0 Kudos
Peter_Kosenko
Level 7

Thanks for the response. I will check those things out.

Here's the rub. We need to know the CURRENT source directory (NOT LastUsedSource) during minor upgrade because our company insists on copying over a new license from the CD, if users have a license upgrade.

So ResolveSource has one condition of IS_MINOR_UPGRADE=1. I will try to make that (IS_MINOR_UPGRADE=1 And REMOVE <> "ALL") and see if that works. I believe that REMOVE="ALL" may return a value of 1 for minor upgrade.

Or perhaps we don't need the extra condition on ResolveSource, since it isn't resolving the CURRENT source directory?

No . . . the help says that ResolveSource is needed to resolve SourceDir (current source).
0 Kudos
Peter_Kosenko
Level 7

The other possibility is that I needed to create a MediaPackage fix and read in LastUsedSource fromthe Registry (among other things) and assigned it to a LASTUSEDSOURCE property in case I needed it. I don't actually need it. However, if LASTUSEDSOURCE is one of those "secret" variables and triggers the installer to validate LastUsedSource, that might be an issue. So I removed that AppSearch/RegLocator action assigned to LASTUSEDSOURCE.

I was presuming that LastUsedSource was UC/lc. I shouldn't have used a similar all caps name, even thought they should be different variables, according to MSI.
0 Kudos
Peter_Kosenko
Level 7

I removed LASTUSEDSOURCE being set by AppSearch and RegLocator.

I placed a condition of (IS_MINOR_UPGRADE=1 And REMOVE <> “ALL”) on the ResolveSource action so that it did not engage during uninstall.

But I think that it was the first that solved the problem, since the second was not causing a problem in the previous version of our installer.

In other words, it was setting LASTUSEDRESOURCE, not using ResolveSource during Minor Upgrade.
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

I don't believe a property named LASTUSEDSOURCE or LastUsedSource exists during an MSI install (logging first time install and maintenance did not provide any log information about either such identifier being set as a property). A Google search only turned up hits for the registry value named LastUsedSource. I don't know if changing this registry value directly (the source list APIs should be used to make this change), though it is unlikely.

The catch to using ResolveSource is that anytime you're not actually running from the source location (maintenance/uninstall or with a patch), there is a risk of a prompt for the source media being displayed. Whenever these situations occur, we recommend adhering the guidelines from the following documentation (these points are valid for any non-first time install scenario):
Preventing a Patch from Requiring Access to the Original Installation Source
0 Kudos
Peter_Kosenko
Level 7

Thank you. This sounds like useful information. I will read it and copy it out for myself.
0 Kudos