Ich bin mir nicht sicher, ob es einen Unterschied macht, die RevisionIds extra in UpdateIds umzuwandeln.
Meiner Meinung nach hat jeder Bundle-Record eine eindeutige RevisionId (eine fortlaufende Nummer) und eine eindeutige UpdateId (als UUID). Beide sind eindeutig und können zum Filtern verwendet werden.
Dann könntest Du die Datei ValidSupersededRevisionIds-unique.txt auch direkt verwenden:
- Anhand der ProduktID werden die RevisionId und UpdateId der Bundle-Records extrahiert. Die RevisionId wird auf jeden Fall benötigt, da die Verknüpfung zu den untergeordneten Update-Records mit den "Payload Files" über die RevisionId hergestellt wird.
- Die superseded RevisionIds werden mit der Datei ValidSupersededRevisionIds-unique.txt entfernt.
- Durch die Verknüpfung mit der Datei BundledUpdateRevisionAndFileIds.txt bekommt man die FileIds der Payload-Files.
- Durch die Verknüpfung mit der Datei UpdateCabExeIdsAndLocations.txt bekommt man die URLs.
Das wäre eine vereinfachte Variante 1. Wie man am Ende zwischen ExcludeList-superseded.txt und ExcludeList-superseded-seconly.txt unterscheidet, ist mir aber noch nicht klar.
Nebenbei: Die RevisionId wird auch verwendet, um die zahlreichen kleineren XML-Dateien in wsusscn2.cab zu identifizieren: Alle Dateien verwenden die RevisionId als Dateinamen.
Zum Beispiel für RevisionId 30626232 aus package72.cab (Stand Oktober 2020).
- Code: Select all
c/30626232
l/ar/30626232
l/bg/30626232
l/cs/30626232
l/da/30626232
l/de/30626232
l/el/30626232
l/en/30626232
l/es/30626232
l/et/30626232
l/fi/30626232
l/fr/30626232
l/he/30626232
l/hr/30626232
l/hu/30626232
l/it/30626232
l/ja/30626232
l/ko/30626232
l/lt/30626232
l/lv/30626232
l/nl/30626232
l/no/30626232
l/pl/30626232
l/pt/30626232
l/pt-br/30626232
l/ro/30626232
l/ru/30626232
l/sk/30626232
l/sl/30626232
l/sr/30626232
l/sv/30626232
l/th/30626232
l/tr/30626232
l/uk/30626232
l/zh-cn/30626232
l/zh-tw/30626232
s/30626232
x/30626232
Inhalt der Dateien. Die Dateien haben keine Dateierweiterung; es sind aber alles XML-Dateien, teilweise in UTF-16 Little-Endian. Die automatische Erkennung des Dateiformats kann damit problematisch werden:
- l/en/30626232
l/de/30626232
Lokalisierte Beschreibungen und Link zur Supportseite:
- Code: Select all
<Title>2020-01 Security and Quality Rollup for .NET Framework 3.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 for Windows 7 and Server 2008 R2 for x64 (KB4535102)</Title>
<MoreInfoUrl>http://support.microsoft.com/kb/4535102</MoreInfoUrl>
- c/30626232
Zuordnung zur UpdateId und RevisionNumber:
- Code: Select all
<UpdateIdentity UpdateID="075d4f35-c2bf-4f8f-9b78-ae1b7d1a6aa8" RevisionNumber="200" />
- s/30626232
Titel und Beschreibung in allen Sprachen, aber in einer Datei zusammengefasst
- x/30626232
Extended Properties, z.B. Default Language
Fazit: Die RevisionId ist ein fortlaufender Index für die Bundle-Records in wsusscn2.cab, der für die Verknüpfungen innerhalb der package.xml, aber auch für die Verknüpfung mit den zusätzlichen, externen Dateien verwendet wird.