Compartilhar via


Criar um diretório em qualquer local com base no diretório do aplicativo empacotado

Para atender a determinados requisitos, os aplicativos podem exigir que os arquivos apareçam no diretório de instalação existente. Por exemplo, se um aplicativo específico estava esperando um arquivo em uma pasta, como C:\Arquivos de Programas\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 nesse local com ACLs adequadas herdadas do diretório pai.

Declarar a localização do diretório no manifesto

Para habilitar esse recurso, o pacote precisará declarar para onde projetar os arquivos no pacote. Veja abaixo 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 sobre projeção

Antes de usar esse recurso, aqui estão uma 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 instalá-lo (usuários ou administradores)? Administrador
Para onde os arquivos podem ser projetados (local bloqueado ou em qualquer lugar)? Qualquer lugar, exceto %pf%\windowsapps ou %pf%\modifiablewindowsapps
Quais são as ACLs no diretório projetado se o criarmos? Herdado do diretório pai
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 declarando o mesmo diretório, todos eles deverão ser do mesmo conjunto relacionado.
E se houver mais de um fornecedor? Não
Como as colisões são tratadas? Pacotes e/ou arquivos pré-existentes são mesclados. Arquivos conflitantes são resolvidos na ordem de prioridade especificada, ou em ordem alfabética pelo nome do pacote, se nenhuma ordem for especificada.