Creación de un directorio en cualquier ubicación en función del directorio de la aplicación empaquetada

Para satisfacer determinados requisitos, las aplicaciones pueden requerir que los archivos aparezcan en su directorio de instalación existente. Por ejemplo, si una aplicación determinada esperaba un archivo en una carpeta, como C:\Archivos de programa\Contoso; los administradores pueden modificar ese directorio. A partir de Windows 11, las aplicaciones pueden especificar un directorio fuera del directorio WindowsApps y el sistema operativo se asegurará de que los archivos aparecerán en esa ubicación con las ACL adecuadas heredadas del directorio primario.

Declaración de la ubicación del directorio en el manifiesto

Para habilitar esta característica, el paquete deberá declarar dónde proyectar los archivos del paquete. A continuación se muestra un ejemplo

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

Consideraciones para la proyección

Antes de usar esta característica, esta es una lista de consideraciones:

Consideraciones Descripción
¿Cómo instalar un paquete con la capacidad de proyectar? Los paquetes tienen que instalarse a través de la API ProvisionPackageForAllUsers
Quién puede instalarlo (usuarios o administradores)? Administración
¿Dónde se pueden proyectar los archivos (ubicación bloqueada o en cualquier lugar)? En cualquier lugar además de %pf%\windowsapps o %pf%\modifiablewindowsapps
¿Cuáles son las ACL del directorio proyectado si la creamos? Se hereda del directorio primario
¿Puede más de un paquete declarar el mismo directorio? No se permite que más de un conjunto relacionado declare el mismo directorio. En otras palabras, si hay varios paquetes que declaran el mismo directorio, todos deben ser del mismo conjunto relacionado.
¿Qué sucede con más de un publicador? No
¿Cómo se controlan las colisiones? Los paquetes o archivos preexisteos se combinan. Los archivos en conflicto se resuelven en orden de prioridad especificado o nombre de paquete alfabéticamente, si no se especifica ningún pedido.