Поделиться через


Создайте каталог в любом месте на основе упакованного каталога приложения

Чтобы удовлетворить определенные требования, приложения могут требовать, чтобы файлы отображались в существующем каталоге установки. Например, если определенное приложение ожидает файл в папке, например C:\Program Files\Contoso; этот каталог может быть изменен администраторами. Начиная с Windows 11, приложения могут указать каталог вне каталога WindowsApps, а ОС обеспечит, что файлы будут отображаться в этом расположении с соответствующими списками управления доступом, унаследованными от родительского каталога.

Объявление расположения каталога в манифесте

Чтобы включить эту функцию, пакету потребуется объявить, куда проектировать файлы в пакете. Ниже приведен пример

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

Рекомендации по проекции

Прежде чем использовать эту функцию, ниже приведен список рекомендаций.

Соображения Описание
Как установить пакет с возможностью проецировать? Пакеты должны устанавливаться через API ProvisionPackageForAllUsers
Кто может установить его (пользователей или администраторов)? Администратор
Где можно проецировать файлы (в заблокированное место или в любом месте)? В любом месте, кроме %pf%\windowsapps или %pf%\modifiablewindowsapps
Какие ACL будут в создаваемом каталоге, если мы его создадим? Наследуется от родительского каталога
Может ли несколько пакетов объявить один каталог? Мы не разрешаем нескольким связанным наборам объявлять один и тот же каталог. Другими словами, если существует несколько пакетов, объявляющих один и тот же каталог, все они должны быть из одного связанного набора.
Что касается нескольких издателей? нет
Как обрабатываются столкновения? Пакеты и(или) предварительно существующие файлы объединяются. Конфликтующие файлы устраняются в указанном порядке приоритета или в алфавитном порядке по имени пакета, если порядок не указан.