Delen via


Differentiële updates voor MSIX-app-pakketten

Inzicht in updates van MSIX-app-pakketten

Wanneer een MSIX-app-pakket wordt gemaakt, wordt er een manifestbestand gegenereerd met details met betrekking tot de bestanden die zijn opgenomen in het MSIX-app-pakket. Tijdens het maken van het pakket wordt een stukje metagegevens gemaakt en opgeslagen in het .msix- of .msixbundle-pakket waarmee delen van het pakket uniek kunnen worden geïdentificeerd door windows. Later, tijdens de update, kan Windows dit metagegevensbestand gebruiken om het oude pakket te vergelijken met het nieuwe pakket en de dingen te bepalen die moeten worden gedownload naar het apparaat. Gezien deze metagegevens kunnen delen van het pakket uniek worden geïdentificeerd, betekent dit dat de differentiële updatemachines volledig functioneren van elke versie van een pakket naar elke andere versie van een pakket (ervan uitgaande dat het bronpakket een lagere versie heeft dan het doelpakket).

Het begint allemaal bij het AppxBlockMap.xml bestand (de bovengenoemde metagegevens). Het AppxBlockMap.xml bestand is een XML-document dat een tweedimensionale lijst met informatie over bestanden in het pakket bevat. De eerste dimensie bevat details op hoog niveau van het bestand (bijvoorbeeld naam en grootte) en de tweede dimensie biedt SHA2-256 hash-weergaven van elk 64 kB-segment van dat bestand (ook wel blok genoemd).

De eerste hash vertegenwoordigt het eerste blok van 64 kB van het bestand en de tweede hash vertegenwoordigt de resterende 35 kB, aangezien het bestand 101188 bytes is.

Als tijdens een update het tweede blok van dat bestand is gewijzigd, wordt de hash ook bijgewerkt om dit feit weer te geven. Het downloadonderdeel begrijpt dit en haalt alleen het tweede blok op en hergebruikt het eerste ongewijzigde blok van het oude pakket.

Bovendien, als een volledig bestand niet is gewijzigd (wat wordt bepaald door de volledige set blokken die niet worden gewijzigd), kan dat bestand opnieuw worden gebruikt vanuit het bestaande pakket, wat resulteert in enorme besparingen voor Windows 10-gebruikers

Upgraden naar nieuwere versies

Wanneer een nieuwere versie van het MSIX-app-pakket is geïnstalleerd, wordt het manifestbestand vergeleken en worden gewijzigde bestandsblokken geïdentificeerd. Omdat het MSIX-app-pakket wordt bijgewerkt naar de nieuwere versie, worden alleen de gewijzigde bestanden opgehaald, waardoor het bandbreedteverbruik wordt verminderd als bijgewerkte toepassingen zich op een netwerkshare of buiten een organisatie bevinden.

Upgraden naar oudere versies

Wanneer een oudere versie van het MSIX-app-pakket is geïnstalleerd, wordt het manifestbestand vergeleken en worden gewijzigde bestandsblokken geïdentificeerd. Omdat het MSIX-app-pakket wordt bijgewerkt naar de oudere versie, worden alleen de gewijzigde bestanden opgehaald, waardoor het bandbreedteverbruik wordt verminderd als bijgewerkte toepassingen zich op een netwerkshare of buiten een organisatie bevinden.

Upgrade-ervaringen optimaliseren

De levering of installatie van een MSIX-app-pakket aan een apparaat kan worden geconfigureerd om de gebruikerservaring te verbeteren. Wanneer een app is geïmplementeerd, kan het apparaat zodanig worden geconfigureerd dat de app wordt bijgewerkt nadat de gebruiker de app heeft gesloten, of dat de toepassing gedwongen wordt afgesloten en de app geforceerd wordt bijgewerkt.

PowerShell

Het installeren van een MSIX-app-pakket op een apparaat met behulp van PowerShell maakt gebruik van de cmdlet add-appxpackage . Deze cmdlet bevat de volgende parameters die de installatie van het MSIX-app-pakket wijzigen of de gebruikerservaring upgraden.

Kenmerk Beschrijving
-RegistratieUitstellenWanneerPakkettenWordenGebruikt Geeft aan dat deze cmdlet verhindert dat het MSIX-app-pakket wordt bijgewerkt terwijl de gebruiker momenteel de app heeft geopend.
-ForceApplicationShutdown Geeft aan dat deze cmdlet alle actieve processen dwingt die zijn gekoppeld aan het pakket of de bijbehorende afhankelijkheden af te sluiten
-ForceUpdateFromAnyVersion Geeft aan dat het MSIX-app-pakket een specifieke versie van een pakket zal klaarzetten/registreren, ongeacht of een hogere versie al klaarstaat/geregistreerd is.
-InstallAllResources Geeft aan dat de cmdlet de implementatie van alle resourcepakketten dwingt die zijn opgegeven vanuit een bundelargument. Dit overschrijft de bruikbaarheidscontrole van resources van de implementatie-engine en dwingt het in fasen brengen van alle resourcepakketten af.
-BehoudenBestandenOnFailure In het geval van een mislukte implementatie, als deze switch is ingesteld op True, worden bestanden die tijdens het installatieproces op de doelmachine zijn gemaakt, niet verwijderd.
-Bijwerken Hiermee geeft u op dat het pakket dat wordt toegevoegd een update van het afhankelijkheidspakket is. Een afhankelijkheidspakket wordt verwijderd wanneer de bovenliggende app wordt verwijderd. Als dit niet is opgegeven, wordt het pakket niet verwijderd wanneer de hoofdapplicatie wordt verwijderd.

Ga naar het PowerShell-artikel over add-appxpackage voor een volledige lijst met parameters die beschikbaar zijn voor deze cmdlet.