does msidbComponentAttributesPermanent work with a patch?
Does msidbComponentAttributesPermanent work in exactly the same way for a msp
patch as it works for the msi installer?
I have a component (an exe file) installed in the systems folder. I created
a patch and it also adds the same component to the same location. In the
component table for the patch, I set the attributes section to
msidbComponentAttributesPermanent(16). But when I uninstall the patch, this
component is deleted. I thought by marking it as permanent, this should not
have been deleted.
Does msidbComponentAttributesPermanent not work with patch?
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
msidbComponentAttributesPermanent
Started by
ramshah
, Oct 05 2006 15:35
5 replies to this topic
Posted 05 October 2006 - 17:47
1: What type of patch are you using? Minor, Major?
2: Are you pointing to the file with the exact same GUID in both setups? If you don't then MSI is not able to establish that the same file is installed by two setups. Rather the system will think that the file has a ref-count of 1 instead of 2.
2: Are you pointing to the file with the exact same GUID in both setups? If you don't then MSI is not able to establish that the same file is installed by two setups. Rather the system will think that the file has a ref-count of 1 instead of 2.
Regards
-Stein Åsmul
-Stein Åsmul
Posted 05 October 2006 - 18:49
1: What type of patch are you using? Minor, Major?
->>>I am creating the patch using msimsp.exe
2: Are you pointing to the file with the exact same GUID in both setups? If you don't then MSI is not able to establish that the same file is installed by two setups. Rather the system will think that the file has a ref-count of 1 instead of 2.
->>>Yes the GUIDs are same. No issue with case sensitivity also.
From the patch install logs. I see the following,
MSI (s) (68:F0) [12:10:23:527]: Executing op:
ComponentRegister(ComponentId={2325FAEF-00DF-4F3E-9ABA-16CAD8C5E106},KeyPath=C:\WINDOWS\system32\abc.exe,State=3,,Disk=1,SharedDllRefCount=1,BinaryType=0)
1: {0B7B27EC-F602-4C34-A732-228EC483CA9F} 2: {2325FAEF-00DF-4F3E-9ABA-16CAD8C5E106} 3: C:\WINDOWS\system32\abc.exe
MSI (s) (68:F0) [12:10:23:527]: Executing op:
ComponentRegister(ComponentId={2325FAEF-00DF-4F3E-9ABA-16CAD8C5E106},KeyPath=C:\WINDOWS\system32\abc.exe,State=3,ProductKey={00000000-0000-0000-0000-000000000000},Disk=1,SharedDllRefCount=1,BinaryType=0)
1: {00000000-0000-0000-0000-000000000000} 2: {2325FAEF-00DF-4F3E-9ABA-16CAD8C5E106} 3: C:\WINDOWS\system32\abc.exe
->>>I am creating the patch using msimsp.exe
2: Are you pointing to the file with the exact same GUID in both setups? If you don't then MSI is not able to establish that the same file is installed by two setups. Rather the system will think that the file has a ref-count of 1 instead of 2.
->>>Yes the GUIDs are same. No issue with case sensitivity also.
From the patch install logs. I see the following,
MSI (s) (68:F0) [12:10:23:527]: Executing op:
ComponentRegister(ComponentId={2325FAEF-00DF-4F3E-9ABA-16CAD8C5E106},KeyPath=C:\WINDOWS\system32\abc.exe,State=3,,Disk=1,SharedDllRefCount=1,BinaryType=0)
1: {0B7B27EC-F602-4C34-A732-228EC483CA9F} 2: {2325FAEF-00DF-4F3E-9ABA-16CAD8C5E106} 3: C:\WINDOWS\system32\abc.exe
MSI (s) (68:F0) [12:10:23:527]: Executing op:
ComponentRegister(ComponentId={2325FAEF-00DF-4F3E-9ABA-16CAD8C5E106},KeyPath=C:\WINDOWS\system32\abc.exe,State=3,ProductKey={00000000-0000-0000-0000-000000000000},Disk=1,SharedDllRefCount=1,BinaryType=0)
1: {00000000-0000-0000-0000-000000000000} 2: {2325FAEF-00DF-4F3E-9ABA-16CAD8C5E106} 3: C:\WINDOWS\system32\abc.exe
Edited by ramshah, 05 October 2006 - 18:50.
Posted 06 October 2006 - 08:01
The file should be there after you uninstall the patch, but in its previous (unpatched) version.
Stefan Krüger
InstallSite.org twitter facebook
Posted 06 October 2006 - 16:51
That's what I expected. But weidly, its deleting the file. From the patch uninstall logs, I see the following:
MSI (s) (68:64) [12:13:31:460]: Executing op: FileRemove(,FileName=C:\WINDOWS\system32\abc.exe,,ComponentId={2325FAEF-00DF-4F3E-9ABA-16CAD8C5E106})
and the file is completely removed. From the install logs, I see that the original file was not cached.
MSI (s) (68:F0) [12:10:21:691]: Baseline: Existing abc.exe_Hotfix version 4.0.2198.5 does not match any baseline. Will not be cached.
MSI (s) (68:64) [12:13:31:460]: Executing op: FileRemove(,FileName=C:\WINDOWS\system32\abc.exe,,ComponentId={2325FAEF-00DF-4F3E-9ABA-16CAD8C5E106})
and the file is completely removed. From the install logs, I see that the original file was not cached.
MSI (s) (68:F0) [12:10:21:691]: Baseline: Existing abc.exe_Hotfix version 4.0.2198.5 does not match any baseline. Will not be cached.
Posted 06 October 2006 - 23:19
Please double check the component codes and file table index. Looks like Windows Installer can't match the files.
Stefan Krüger
InstallSite.org twitter facebook