Creare una directory in qualsiasi percorso in base alla directory dell'app in pacchetto

Per soddisfare determinati requisiti, le app potrebbero richiedere la visualizzazione dei file nella directory di installazione esistente. Ad esempio, se un'app specifica prevedeva un file in una cartella, ad esempio C:\Programmi\Contoso; tale directory può essere modificata dagli amministratori. A partire da Windows 11, le app possono specificare una directory all'esterno della directory WindowsApps e il sistema operativo garantisce che i file vengano visualizzati in tale percorso con gli elenchi di controllo di accesso adeguati ereditati dalla directory padre.

Dichiarazione del percorso della directory nel manifesto

Per abilitare questa funzionalità, il pacchetto dovrà dichiarare dove proiettare i file nel pacchetto. Di seguito è riportato un esempio

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

Considerazioni sulla proiezione

Prima di usare questa funzionalità, ecco un elenco di considerazioni:

Considerazioni Descrizione
Come installare un pacchetto con la possibilità di proiettare? I pacchetti devono essere installati tramite l'API ProvisionPackageForAllUsers
Who possibile installarlo (utenti o amministratori)? Admin
Dove è possibile proiettare i file (posizione bloccata o ovunque)? Oltre a %pf%\windowsapps o %pf%\modifiablewindowsapps
Quali sono gli ACL nella directory proiettata se viene creata? Ereditato dalla directory padre
Più pacchetti possono dichiarare la stessa directory? Non è consentito a più set correlati dichiarare la stessa directory. In altre parole, se sono presenti più pacchetti che dichiarano la stessa directory, devono essere tutti dello stesso set correlato.
Che dire di più di un server di pubblicazione? No
Come vengono gestite le collisioni? I pacchetti e/o i file preesiste vengono uniti. I file in conflitto vengono risolti in ordine di priorità specificato o in ordine alfabetico, se non viene specificato alcun ordine