Hi all.

First post... please be gentle [:D]
I have been "repackaging" for quite some time, but never really made any MSI from scratch.

I'm having problems with key files not being removed from the system when an uninstall is performed.

I have a simple MSI project I am creating from scratch.
It contains files (and folders) that are distributed to the C: drive (or rather "WinRoot").
That's all I need to do; nothing else required.

On compiling the MSI, some files wanted to use the .NET dependency and added in the flach9x.ocx file which was very annoying. So, I modified the components for these files (3 in total) to say NONE for the .NET Scan at Build. This worked and nothing extra was added.

The MSI installs successfully.
If I immediately uninstall the applicaiton before even opening/running it then the problem still shows - all Key files are left behind but all other files are removed successfully.

Does anyone have any tips?

Thanks!
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
ORIGINAL: MrBeatnik
Does anyone have any tips?
As a starting point, run the install and uninstall with a verbose log and compare them.

My guess would be that the component containing the file has its attribute set to 'Leave installed on uninstall'. This is easily checked by looking at the relevant row in the Component table. If the row's Attribute is at least 16, it's set to be left on uninstall.
Answered 04/24/2008 by: VBScab
Red Belt

Please log in to comment
0
Thanks for the reply VBScab!
I still can't identify the problem...

ORIGINAL: VBScab
If the row's Attribute is at least 16, it's set to be left on uninstall.
After checking the components in the table, all components have an attrubute of 8.
They also all have Component ID's.

ORIGINAL: VBScab
As a starting point, run the install and uninstall with a verbose log and compare them.
After checking the logs, the most obvious information that jumps out at me is (note I am just pulling out one filename which happens to be a DLL):

Install:
MSI (s) (90:FC) [10:51:32:665]: Executing op: ComponentRegister(ComponentId={2DB46630-2A4D-4356-B7E3-E48148A9778F},KeyPath=C:\Netwsims\XCrypt.DLL,State=3,,Disk=1,SharedDllRefCount=1,BinaryType=0)

MSI (s) (90:FC) [10:52:29:529]: Executing op: AssemblyPublish(Feature=Network_Sims_Files,Component={2DB46630-2A4D-4356-B7E3-E48148A9778F},AssemblyType=3,AppCtx=C:\Netwsims\XCrypt.DLL,AssemblyName=XCrypt,Version="1.0.2199.25062",Culture="neutral",FileVersion="1.0.2199.25062",)

MSI (s) (90:FC) [10:52:29:529]: Note: 1: 1402 2: UNKNOWN\Installer\Assemblies\C:|Netwsims|XCrypt.DLL 3: 2


Uninstall:
MSI (s) (90:6C) [10:54:19:608]: Executing op: ComponentUnregister(ComponentId={2DB46630-2A4D-4356-B7E3-E48148A9778F},,BinaryType=0,PreviouslyPinned=1)


MSI (s) (90:6C) [10:54:19:686]: Executing op: AssemblyUnpublish(,,AssemblyType=3,AppCtx=C:\Netwsims\XCrypt.DLL,AssemblyName=XCrypt,Version="1.0.2199.25062",Culture="neutral",FileVersion="1.0.2199.25062",Descriptor=hEgwYOvBd=-tX$zV@Dq[Network_Sims_Files>K-[c25cW_9%sWhQwXG,V)
MSI (s) (90:6C) [10:54:19:701]: Note: 1: 1402 2: UNKNOWN\Installer\Assemblies\C:|Netwsims|XCrypt.DLL 3: 2
MSI (s) (90:6C) [10:54:19:701]: Note: 1: 1402 2: UNKNOWN\Installer\Assemblies\C:|Netwsims|XCrypt.DLL 3: 2


I did do a search for information, but couldn't find anything that seemed related.
The above messages seem the same for all Key files (not all are DLLs, there are EXEs too).
The uninstall was performed immediately after the install without any action inbetween. I think the issue is that it installs as a "shared file"?

Can you offer any advice from these entries in the log?

Thanks!
Answered 04/24/2008 by: MrBeatnik
Senior Yellow Belt

Please log in to comment
0
I removed the "Shared" setting from all components and recompiled, but the problem still exists.
Answered 04/24/2008 by: MrBeatnik
Senior Yellow Belt

Please log in to comment
0
Does this app start a service or automatically start a process after installation? If it does, the files in question may be being held open by the application's process(es).

Check with a process monitor (yawn...go the regulars) to see if anything gets started. If it does, you'll need to add a Custom Action to the package (in a transform if this is a vendor-supplied MSI) to check for the process and, if it's running, to kill that process.
Answered 04/24/2008 by: VBScab
Red Belt

Please log in to comment
0
ORIGINAL: VBScab
Does this app start a service or automatically start a process after installation?
It seems not. The MSI only contains a selection of files which run as a standalone application (no registry or registering of DLLs etc). I checked the processes anyway, and nothing new started. The files can be deleted manually without complaint.

This seems to be a strange one?
I can't imagine why it is doing this with such a simply created MSI.
I forgot to mention that Adminstudio 8.6 was used, if that makes a difference!
Answered 04/24/2008 by: MrBeatnik
Senior Yellow Belt

Please log in to comment
0
I'm officially stumped, then!

If it were me, I'd run the uninstall with a process monitor anyway. It will highlight any access funnies.

If all else fails, just add the lot into the RemoveFile table!
Answered 04/24/2008 by: VBScab
Red Belt

Please log in to comment
0
ORIGINAL: VBScab

I'm officially stumped, then!

If it were me, I'd run the uninstall with a process monitor anyway. It will highlight any access funnies.

If all else fails, just add the lot into the RemoveFile table!

Bah! Well, I guess I'll have to have a deeper look. I'll certianly try those suggestions there.
Thanks very much for assisting!
Answered 04/24/2008 by: MrBeatnik
Senior Yellow Belt

Please log in to comment
0
read this. .

http://johnmcfadyen.spaces.live.com/blog/cns!9DD01136FC094724!136.entry

check for a reference count on the offending component.

{2DB46630-2A4D-4356-B7E3-E48148A9778F}
Answered 04/25/2008 by: jmcfadyen
Fifth Degree Black Belt

Please log in to comment
Answer this question or Comment on this question for clarity