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

Per soddisfare determinati requisiti, le app potrebbero richiedere che i file vengano visualizzati nella directory di installazione esistente. Ad esempio, se una particolare app 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 garantirà che i file vengano visualizzati in tale percorso con gli ACL appropriati 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 per la 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
Chi può installarlo (utenti o amministratori)? Amministrativi
Dove è possibile proiettare i file (posizione bloccata o ovunque)? Ovunque oltre a %pf%\windowsapps o %pf%\modificafiablewindowsapps
Quali sono gli elenchi di controllo di accesso nella directory proiettata se lo si crea? Ereditato dalla directory padre
È possibile dichiarare più di un pacchetto nella stessa directory? Non è consentito più set correlato per 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 ne dici di più di un editore? No
Come vengono gestite le collisioni? I pacchetti e/o i file preesistenti vengono uniti. I file in conflitto vengono risolti in ordine di priorità specificato o in ordine alfabetico, se non viene specificato alcun ordine