Partilhar via


Crie um diretório em qualquer local com base no diretório de aplicativos empacotados

Para satisfazer determinados requisitos, as aplicações podem exigir que os ficheiros 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 WindowsApps e o sistema operacional garantirá que os arquivos apareçam nesse local com ACLs adequadas herdadas do diretório pai.

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

Para habilitar esse recurso, o pacote precisará declarar para onde projetar os arquivos no pacote. Abaixo está 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, aqui está 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)? Em qualquer lugar além de %pf%\windowsapps ou %pf%\modifiablewindowsapps
Quais são as ACLs no diretório que será criado 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 devem ser do mesmo conjunto relacionado.
E quanto a mais de uma editora? Não
Como são tratadas as colisões? Pacotes e/ou arquivos pré-existentes são mesclados. Os arquivos conflitantes são resolvidos em ordem de prioridade especificada ou nome do pacote em ordem alfabética, se nenhuma ordem for especificada