Uninstall does not remove Key Files
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!
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
Answers (8)
Please log in to answer
Posted by:
anonymous_9363
16 years ago
ORIGINAL: MrBeatnikAs a starting point, run the install and uninstall with a verbose log and compare them.
Does anyone have any tips?
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.
Posted by:
MrBeatnik
16 years ago
Thanks for the reply VBScab!
I still can't identify the problem...
After checking the components in the table, all components have an attrubute of 8.
They also all have Component ID's.
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!
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.
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.
Install:
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: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
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!
Posted by:
MrBeatnik
16 years ago
Posted by:
anonymous_9363
16 years ago
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.
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.
Posted by:
MrBeatnik
16 years ago
ORIGINAL: VBScabIt 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.
Does this app start a service or automatically start a process after installation?
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!
Posted by:
anonymous_9363
16 years ago
Posted by:
MrBeatnik
16 years ago
ORIGINAL: VBScabBah! Well, I guess I'll have to have a deeper look. I'll certianly try those suggestions there.
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!
Thanks very much for assisting!
Posted by:
jmcfadyen
16 years ago
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}
http://johnmcfadyen.spaces.live.com/blog/cns!9DD01136FC094724!136.entry
check for a reference count on the offending component.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.