Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przegląd
Funkcja elastycznej wirtualizacji umożliwia aplikacji zadeklarowanie, że niektóre pliki i wpisy rejestru powinny być widoczne dla innych aplikacji; i że te powinny być utrwalane podczas odinstalowywania aplikacji. Wszystkie inne pliki i wpisy rejestru nie są widoczne dla innych aplikacji; i są usuwane po odinstalowaniu.
Jak kontrolować wirtualizację wybranych lokalizacji
Uwaga / Notatka
Zachowanie opisane w tej sekcji zostało wprowadzone w systemie Windows 10 w wersji 21H1.
Począwszy od systemu Windows 10 w wersji 21H1, system zachowuje istniejące zachowanie niewirtualizowanych zasobów z ograniczeniami oraz właściwości RegistryWriteVirtualization i FilesystemWriteVirtualization. Ponadto system dodaje możliwość deklarowania określonych folderów i/lub kluczy rejestru, które mają być niezawirtualizowane.
- Można zadeklarować tylko lokalizacje systemu plików znajdujące się w
%USERPROFILE%\AppData
. - Można zadeklarować tylko lokalizacje rejestru znajdujące się w infrastrukturze HKCU.
Oto przykład.
<!-- 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>
Uwaga / Notatka
Jeśli Twoja aplikacja deklaruje zarówno składnię dla wersji wcześniejszych niż Windows 10, wersja 21H1, jak i dla Windows 10, wersja 21H1, to stara deklaracja będzie używana w wersjach wcześniejszych niż Windows 10, wersja 21H1, podczas gdy nowa deklaracja będzie używana w wersjach Windows 10, wersja 21H1 i późniejszych.
Mechanizmy wcześniejsze niż Windows 10, wersja 21H1
W tradycyjnych środowiskach aplikacje mogą tworzyć, aktualizować i usuwać pliki w większości miejsc w systemie plików. Ponadto mogą tworzyć, aktualizować i usuwać wpisy w rejestrze systemu Windows. Te pliki i wpisy rejestru są widoczne dla innych aplikacji w systemie, mimo że często nie muszą być. Ponadto po odinstalowaniu aplikacji te pliki i wpisy rejestru są często pozostawione w tyle i stają się zbędne.
Na platformie uniwersalnej systemu Windows (UWP) takie pliki i wpisy rejestru są zwirtualizowane, aby tylko aplikacja, która je zapisuje, mogła je zobaczyć. Gdy aplikacja zostanie odinstalowana, zostaną usunięte. Istnieją jednak prawidłowe scenariusze, w których aplikacja chce, aby takie pliki i wpisy rejestru były widoczne dla innych aplikacji. Ponadto inne aplikacje mogą wymagać, aby te pliki i wpisy były utrwalane nawet po odinstalowaniu aplikacji, która je napisała.
Domyślne zachowanie MSIX
Lokalizacja | Kontekst | Opis |
---|---|---|
HKCU (Międzynarodowa Organizacja Turystyczna | Czas instalacji |
|
HKCU (Międzynarodowa Organizacja Turystyczna | Czas działania |
|
HKLM powiedział: | Czas instalacji |
|
HKLM powiedział: | Czas działania |
|
Dobrze znane foldery | Czas instalacji |
|
Dane aplikacji | Czas działania |
|
Ograniczona unvirtualizedResources
funkcja
Uwaga / Notatka
Obsługa unvirtualizedResources
funkcji z ograniczeniami została wprowadzona w systemie Windows 10 w wersji 1903 (10.0; Kompilacja 18362, znana również jako aktualizacja systemu Windows 10 z maja 2019 r.
Aplikacja może zadeklarować unvirtualizedResources
ograniczoną możliwość i ustawić właściwości RegistryWriteVirtualization i/lub FilesystemWriteVirtualization na true
, aby uzyskać dostęp do zapisu do HKCU i/lub appData. Ma to na celu włączenie sytuacji, w której aplikacja musi zapisywać wpisy, które są następnie widoczne dla innych procesów poza pakietem. Na przykład gry zapisują dane zapisu w AppData i dane te muszą być utrwalane nawet po odinstalowaniu gry.
Majątek | Opis |
---|---|
RegistryWriteVirtualization=wyłączone | Zapisy w HKCU przechodzą do niewirtualizowanej lokalizacji, są widoczne dla innych procesów poza pakietem i nie są czyszczone podczas odinstalowywania aplikacji. |
FilesystemWriteVirtualization=wyłączony | Operacje zapisu w usłudze AppData przechodzą do niewirtualizowanej lokalizacji, są widoczne dla innych procesów poza pakietem i nie są czyszczone podczas odinstalowywania aplikacji. |
Ten mechanizm wyłącza całkowicie wirtualizację HKCU i/lub AppData , która jest sprzeczna z podstawowym celem. Nie jest to narzędzie szczegółowe i często przekracza wymagania danej aplikacji.