Crear un directorio en cualquier ubicación basado en el directorio de aplicaciones empaquetadas

Para satisfacer ciertos 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 garantizará que los archivos aparecerán en esa ubicación con las ACL adecuadas heredadas del directorio principal.

Declarar la ubicación del directorio en el manifiesto

Para habilitar esta característica, el paquete deberá declarar dónde proyectar los archivos del paquete. Este es 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, estas son una lista de consideraciones:

Consideraciones Descripción
¿Cómo instalar un paquete con la capacidad de proyectar? Los paquetes deben 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)? Cualquier lugar además de %pf%\windowsapps o %pf%\modifiablewindowsapps
¿Cuáles son las ACL en el directorio proyectado si lo creamos? Heredado del directorio principal
¿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é hay de más de un publicador? No
¿Cómo se controlan las colisiones? Los paquetes o archivos preexistentes se combinan. Los archivos en conflicto se resuelven en orden de prioridad especificado o alfabéticamente el nombre del paquete, si no se especifica ningún orden.