Criar um diretório em qualquer localização com base no diretório de aplicativos empacotado

Para atender a determinados requisitos, os aplicativos podem requisitar que os arquivos apareçam em seu diretório de instalação existente. Por exemplo, se um determinado aplicativo estava esperando um arquivo em uma pasta, como C:\Arquivos de programa\Contoso, esse diretório pode ser modificado pelos administradores. A partir do Windows 11, os aplicativos podem especificar um diretório fora do diretório do WindowsApps e o sistema operacional garantirá que os arquivos apareçam nessa localização com as ACLs adequadas herdadas do diretório responsável.

Declaração da localização do diretório no manifesto

Para habilitar esse recurso, o pacote precisa declarar para onde projetar os arquivos no pacote. Veja um exemplo

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

Considerações para projeção

Antes de usar esse recurso, veja esta lista de considerações:

Considerações Descrição
Como instalar um pacote com a capacidade de projetar? Os pacotes precisam ser instalados por meio da API ProvisionPackageForAllUsers
Quem pode instalar (usuários ou administradores)? Admin
Para onde os arquivos podem ser projetados (localização bloqueada ou qualquer outro lugar)? Em qualquer lugar que não seja %pf%\windowsapps ou %pf%\modifiablewindowsapps
Quais são as ACLs no diretório projetado se forem criadas? Herdado do diretório responsável
Mais de um pacote pode declarar o mesmo diretório? Não permitimos que mais de um conjunto relacionado declare o mesmo diretório. Em outras palavras, se houver vários pacotes com a declaração do mesmo diretório, todos eles devem pertencer ao mesmo conjunto de relação.
E no caso de mais de um fornecedor? Não
Como as colisões são resolvidas? Pacotes e/ou arquivos pré-existentes são mesclados. Os arquivos conflitantes são resolvidos por ordem de prioridade especificada ou pelo nome do pacote em ordem alfabética, se nenhuma ordem for especificada