Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přehled
Flexibilní funkce virtualizace poskytuje vaší aplikaci způsob, jak deklarovat, že některé soubory a položky registru by měly být viditelné pro jiné aplikace; a že ty by se měly zachovat při odinstalaci aplikace. Všechny ostatní soubory a položky registru nejsou viditelné pro ostatní aplikace; a jsou odebrány při odinstalaci.
Řízení virtualizace vybraných umístění
Poznámka:
Chování popsané v této části bylo zavedeno ve Windows 11.
Počínaje Windows 11 systém zachovává stávající chování funkce s omezeným přístupem unvirtualizedResources a vlastnosti RegistryWriteVirtualization a FilesystemWriteVirtualization. Kromě toho systém přidá pro vaši aplikaci možnost deklarovat konkrétní složky nebo klíče registru, které chcete zrušit.
- Můžete deklarovat pouze umístění systému souborů, která jsou uvnitř
%USERPROFILE%\AppData. - Můžete deklarovat pouze umístění registru, která jsou v HKCU.
Tady je příklad.
<!-- 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 11 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>
Poznámka:
Pokud vaše aplikace deklaruje syntaxi před Windows 11 i Windows 11, použije se stará deklarace ve verzích před Windows 11, zatímco nová deklarace se použije v před Windows 11 a novějších verzích.
Mechanismy před Windows 11
V tradičních prostředích můžou aplikace vytvářet, aktualizovat a odstraňovat soubory na většině míst v systému souborů. A mohou vytvářet, aktualizovat a odstraňovat položky v registru Systému Windows. Tyto soubory a položky registru jsou viditelné pro jiné aplikace v systému, i když často nemusí být. Kromě toho, když je aplikace odinstalována, tyto soubory a položky registru jsou často ponechány za sebou a stávají se nepotřebnými.
V univerzální platformě Windows (UPW) se takové soubory a položky registru virtualizují, aby je viděla jenom aplikace, která je zapisuje. A po odinstalaci aplikace se odeberou. Existují ale platné scénáře, kdy aplikace chce, aby tyto soubory a položky registru byly viditelné pro jiné aplikace. Kromě toho můžou jiné aplikace vyžadovat, aby tyto soubory a položky zůstaly trvalé i po odinstalaci aplikace, která je napsala.
Výchozí chování MSIX
| Umístění | Kontext | Popis |
|---|---|---|
| HKCU | Doba instalace |
|
| HKCU | Doba běhu |
|
| HKLM | Doba instalace |
|
| HKLM | Doba běhu |
|
| Známé složky | Doba instalace |
|
| AppData | Doba běhu |
|
Omezená unvirtualizedResources schopnost
Poznámka:
unvirtualizedResources Podpora omezené schopnosti byla zavedena ve Windows 10 verze 1903 (10.0; Build 18362), označovaný také jako Aktualizace Windows 10 z května 2019.
Aplikace může deklarovat unvirtualizedResources omezenou schopnost a nastavit vlastnosti RegistryWriteVirtualization a/nebo FilesystemWriteVirtualization tak, aby truezískala přístup k zápisu do HKCU a/nebo AppData. To umožňuje případ, kdy vaše aplikace potřebuje zapisovat položky, které jsou pak viditelné pro jiné procesy mimo jeho balíček. Například hry zapisují data do AppData a tato data se musí uchovávat i po odinstalaci hry.
| Vlastnictví | Popis |
|---|---|
| RegistryWriteVirtualization=vypnuto | Zápisy do HKCU přejdou do nevirtualizovaného umístění, jsou viditelné pro jiné procesy mimo balíček a nejsou vyčištěny při odinstalaci aplikace. |
| FilesystemWriteVirtualization=zakázáno | Zápisy do AppData přejdou do nevirtualizovaného umístění, jsou viditelné pro jiné procesy mimo balíček a nejsou vyčištěny při odinstalaci aplikace. |
Tento mechanismus zcela vypne virtualizaci HKCU a/nebo AppData, což je proti hlavnímu cíli. Nejedná se o jemně odstupňovaný nástroj a často překračuje požadavky dané aplikace.