Vytvoření adresáře v libovolném umístění na základě zabaleného adresáře aplikace

Aby aplikace splňovaly určité požadavky, můžou vyžadovat, aby se soubory zobrazovaly v existujícím instalačním adresáři. Pokud například určitá aplikace očekávala soubor ve složce, například C:\Program Files\Contoso; tento adresář můžou upravovat správci. Od Windows 11 můžou aplikace zadat adresář mimo adresář WindowsApps a operační systém zajistí, aby se soubory zobrazovaly v daném umístění se správnými seznamy ACL zděděnými z nadřazeného adresáře.

Deklarování umístění adresáře v manifestu

Pokud chcete tuto funkci povolit, bude muset balíček deklarovat, kam se mají soubory v balíčku projektovat. Níže je příklad:

<Package...> 
  <Extensions> 
    <desktop8:Extension Category="windows.MutablePackageDirectories"> 
      <desktop8:MutablePackageDirectories> 
        <desktop8:MutablePackageDirectory target="$(package.volumeroot)\Program Files\<Folder>" Shared=”true”> 
      </desktop8:MutablePackageDirectories> 
    </Extension> 
  </Extensions> 
</Package> 

Důležité informace o projekci

Než tuto funkci použijete, tady je seznam důležitých aspektů:

Úvahy Popis
Jak nainstalovat balíček s možností promítnout? Balíčky se musí nainstalovat prostřednictvím rozhraní API ProvisionPackageForAllUsers.
Kdo ho může nainstalovat (uživatelé nebo správci)? Administrátor
Kam se dají soubory promítat (zamknuté umístění nebo kdekoli)? Kdekoli kromě %pf%\windowsapps nebo %pf%\modifiablewindowsapps
Jaké jsou ACL v zamýšleném adresáři, pokud jej vytvoříme? Zděděno z nadřazeného adresáře
Může více než jeden balíček deklarovat stejný adresář? Nepovolujeme, aby více než jedna související sada deklarovala stejný adresář. Jinými slovy, pokud existuje více balíčků deklarující stejný adresář, musí být všechny ze stejné související sady.
A co víc vydavatelů? Ne
Jak se zpracovávají kolize? Balíčky a/nebo již existující soubory se sloučí. Konfliktní soubory jsou vyřešeny v zadaném pořadí priority nebo v abecedním názvu balíčku, pokud není zadána žádná objednávka.