Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Überblick
Mit dem flexiblen Virtualisierungsfeature kann Ihre App deklarieren, dass einige Dateien und Registrierungseinträge für andere Apps sichtbar sein sollten. und dass diese bei der App-Deinstallation beibehalten werden sollen. Alle anderen Dateien und Registrierungseinträge sind für andere Apps nicht sichtbar; und werden bei der Deinstallation entfernt.
So steuern Sie die Virtualisierung ausgewählter Speicherorte
Hinweis
Das in diesem Abschnitt beschriebene Verhalten wurde in Windows 10, Version 21H1, eingeführt.
Ab Windows 10, Version 21H1, behält das System das bestehende Verhalten der eingeschränkten Funktion unvirtualizedResources sowie der Eigenschaften RegistryWriteVirtualization und FilesystemWriteVirtualization bei. Darüber hinaus bietet das System der App die Möglichkeit, bestimmte Ordner und/oder Registrierungsschlüssel zu deklarieren, die Sie nichtvirtualisieren möchten.
- Sie können nur Dateisystemspeicherorte deklarieren, die sich innerhalb
%USERPROFILE%\AppData
befinden. - Sie können nur Registrierungsspeicherorte deklarieren, die sich innerhalb von HKCU befinden.
Hier ist ein Beispiel.
<!-- Declare the desktop6 and/or virtualization XML namespace where the virtualization properties are defined, and include this in the list of ignorable namespaces. -->
<!-- Declare the XML namespace for the required restricted capability, and include it in the list of ignorable namespaces. -->
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:desktop6="http://schemas.microsoft.com/appx/manifest/desktop/windows10/6"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:virtualization="http://schemas.microsoft.com/appx/manifest/virtualization/windows10"
IgnorableNamespaces="rescap desktop6 virtualization">
<!-- ... -->
<!-- Other entries omitted for brevity. -->
<!-- ... -->
<Properties>
<!-- If you don't want virtualization of registry writes to HKEY_CURRENT_USER, then include the property, and set it to disabled. -->
<desktop6:RegistryWriteVirtualization>disabled</desktop6:RegistryWriteVirtualization>
<!-- If you don't want virtualization of file system writes to the user's AppData folder, then include the property, and set it to disabled. -->
<desktop6:FileSystemWriteVirtualization>disabled</desktop6:FileSystemWriteVirtualization>
<!-- On Windows 10, version 21H1 and later OS versions, you can declare specific file system and/or registry locations that you want to be unvirtualized.
If these are recognized on the current device, then they take precedence over the old declarations. On older devices,
the new declarations are ignored and the old ones are honored. -->
<virtualization:FileSystemWriteVirtualization>
<virtualization:ExcludedDirectories>
<virtualization:ExcludedDirectory>$(KnownFolder:LocalAppData)\Fabrikam\Widgets</virtualization:ExcludedDirectory>
<virtualization:ExcludedDirectory>$(KnownFolder:RoamingAppData)\Fabrikam\Widgets</virtualization:ExcludedDirectory>
</virtualization:ExcludedDirectories>
</virtualization:FileSystemWriteVirtualization>
<virtualization:RegistryWriteVirtualization>
<virtualization:ExcludedKeys>
<virtualization:ExcludedKey>HKEY_CURRENT_USER\Software\Fabrikam\Widgets</virtualization:ExcludedKey>
</virtualization:ExcludedKeys>
</virtualization:RegistryWriteVirtualization>
</Properties>
<Capabilities>
<!-- Include the required restricted capability. -->
<rescap:Capability Name="unvirtualizedResources"/>
</Capabilities>
</Package>
Hinweis
Wenn Ihre App sowohl die Pre-Windows 10, Version 21H1 als auch die Syntax von Windows 10, Version 21H1, deklariert, wird die alte Deklaration unter Vorabversionen von Windows 10, Version 21H1, verwendet, während die neue Deklaration unter Pre-Windows 10, Version 21H1 und höher verwendet wird.
Mechanismen vor Windows 10, Version 21H1
In herkömmlichen Umgebungen können Apps Dateien an den meisten Stellen im Dateisystem erstellen, aktualisieren und löschen. Außerdem können sie Einträge in der Windows-Registrierung erstellen, aktualisieren und löschen. Diese Dateien und Registrierungseinträge sind für andere Apps auf dem System sichtbar, obwohl sie häufig nicht erforderlich sind. Wenn die App deinstalliert wird, bleiben diese Dateien und Registrierungseinträge oft zurück und werden zu Datenmüll.
In der Universellen Windows-Plattform (UWP) werden solche Dateien und Registrierungseinträge virtualisiert, sodass nur die App, die sie schreibt, sie sehen kann. Und sie werden entfernt, wenn die App deinstalliert wird. Es gibt jedoch gültige Szenarien, in denen die App solche Dateien und Registrierungseinträge für andere Apps sichtbar machen möchte. Darüber hinaus erfordern andere Apps möglicherweise, dass diese Dateien und Einträge auch nach der Deinstallation der App, die sie geschrieben hat, beibehalten werden.
MsIX-Standardverhalten
Standort | Kontext | BESCHREIBUNG |
---|---|---|
HKCU | Installationszeit |
|
HKCU | Laufzeit |
|
HKLM | Installationszeit |
|
HKLM | Laufzeit |
|
Bekannte Ordner | Installationszeit |
|
Anwendungsdaten | Laufzeit |
|
Die eingeschränkte Funktion unvirtualizedResources
Hinweis
Unterstützung für die unvirtualizedResources
eingeschränkte Funktion wurde in Windows 10, Version 1903 (10.0) eingeführt. Build 18362), auch bekannt als Windows 10 Mai 2019 Update.
Ihre App kann die unvirtualizedResources
eingeschränkte Funktion deklarieren und die Eigenschaften RegistryWriteVirtualization und/oder FilesystemWriteVirtualization auf true
festlegen, um Schreibzugriff auf HKCU und/oder appData zu erhalten. Dies ermöglicht den Fall, dass Ihre App Einträge schreiben muss, die dann für andere Prozesse außerhalb ihrer Paketgrenzen sichtbar sind. Spiele schreiben beispielsweise Speicherdaten in AppData, und diese Daten müssen auch nach der Deinstallation des Spiels beibehalten werden.
Eigentum | BESCHREIBUNG |
---|---|
RegistryWriteVirtualization=deaktiviert | Schreibvorgänge in HKCU wechseln zum nichtvirtualisierten Speicherort, sind für andere Prozesse außerhalb des Pakets sichtbar und werden bei der App-Deinstallation nicht bereinigt. |
FilesystemWriteVirtualization=deaktiviert | Schreibvorgänge in AppData wechseln zum nichtvirtualisierten Speicherort, sind für andere Prozesse außerhalb des Pakets sichtbar und werden bei der App-Deinstallation nicht bereinigt. |
Dieser Mechanismus deaktiviert die HKCU- und/oder AppData-Virtualisierung insgesamt, was dem primären Ziel entgegenläuft. Es ist kein fein abgestimmtes Tool, und er überschreitet häufig die Anforderungen einer bestimmten App.