I haven't prepared the update.inf yet but I have some information about deduping sections.
Generally, all
[*.files] sections can be deduped without any problems.
[SourceDisksNames] &
[SourceDisksFiles] can be also deduped.
As for the strings I wrote about a few days ago it's like this:
The basic structure:
[Save.Reg.For.Uninstall]
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%
HKLM,SOFTWARE\Microsoft\Updates\Windows 2000\SP%SERVICE_PACK_NUMBER%\%SP_SHORT_TITLE%
[Product.Add.Reg]
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%,"Installed",0x10001,1
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%,"Comments",0,%SP_TITLE%
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%,"Backup Dir",0,""
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%,"Fix Description",0,%SP_TITLE%
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%,"Installed By",0,""
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%,"Installed On",0,""
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%,"Service Pack",0x10001,%SERVICE_PACK_NUMBER%
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%,"Valid",0x10001,1
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%\File 1\,"Flags",0,""
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%\File 1\,"New File",0,""
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%\File 1\,"New Link Date",0,""
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%\File 1\,"Old Link Date",0,""
HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%SP_SHORT_TITLE%,"ReleaseType",0,Hotfix
HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%SP_SHORT_TITLE%,"RegistryLocation",0,"HKLM\SOFTWARE\Microsoft\Updates\Windows 2000\SP%SERVICE_PACK_NUMBER%\%SP_SHORT_TITLE%"
HKLM,SOFTWARE\Microsoft\Updates\Windows 2000\SP%SERVICE_PACK_NUMBER%\%SP_SHORT_TITLE%,"Description",,%SP_TITLE%
; Plugin.ocx
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%SP_SHORT_TITLE%","DisplayIcon",0x00020000, "%windir%\System32\msiexec.exe"
Without any loss of necessary data it can be reduced to
[Save.Reg.For.Uninstall]
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%
HKLM,SOFTWARE\Microsoft\Updates\Windows 2000\SP%SERVICE_PACK_NUMBER%\%SP_SHORT_TITLE%
[Product.Add.Reg]
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%,"Installed",0x10001,1
This line
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%SP_SHORT_TITLE%","DisplayIcon",0x00020000, "%windir%\System32\msiexec.exe"
should be reduced and go to both [Save.Reg.For.Uninstall] & [Product.Del.Reg].
Final thing should look like this:
[Save.Reg.For.Uninstall]
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%
HKLM,SOFTWARE\Microsoft\Updates\Windows 2000\SP%SERVICE_PACK_NUMBER%\%SP_SHORT_TITLE%
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%SP_SHORT_TITLE%
[Product.Del.Reg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%SP_SHORT_TITLE%
[Product.Add.Reg]
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%,"Installed",0x10001,1
Finally,
SP%SERVICE_PACK_NUMBER% should be changed to SP5 (all Win2k updates after SP4 are listed as SP5).
So if we add ex. KB123456 it should be
[Save.Reg.For.Uninstall]
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB123456
HKLM,SOFTWARE\Microsoft\Updates\Windows 2000\SP5\KB123456
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB123456
[Product.Del.Reg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB123456
[Product.Add.Reg]
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB123456,"Installed",0x10001,1
The line
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB123456
in
[Product.Del.Reg] is necessary to remove KB123456 from the list of installed updates.
On the other hand,
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB123456,"Installed",0x10001,1
is needed to tell Windows Updates that KB123456 is installed.
Is is also important to note that the basic structure I put above is also needed but in the case of a merged update it will be related to the name of the merged update, not the updates included in it.
I'll give an example. Let's say we merge two updates - KB123456 & KB234567. The merged info should be
[Save.Reg.For.Uninstall]
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB123456
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB234567
HKLM,SOFTWARE\Microsoft\Updates\Windows 2000\SP5\KB123456
HKLM,SOFTWARE\Microsoft\Updates\Windows 2000\SP5\KB234567
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB123456
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB234567
[Product.Del.Reg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB123456
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB234567
[Product.Add.Reg]
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB123456,"Installed",0x10001,1
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB234567,"Installed",0x10001,1
I hope you understand what I mean. Please tell me if my explanation is unclear or too complicated
This post has been edited by tomasz86: 21 July 2011 - 04:20 AM