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

Для удовлетворения определенных требований приложения могут потребовать, чтобы файлы отображались в существующем каталоге установки. Например, если конкретному приложению требуется файл в папке, например C:\Program Филес\контосо; Этот каталог может быть изменен администраторами. начиная с Windows 11, приложения могут указать каталог за пределами каталога виндовсаппс, и операционная система обеспечит, что файлы будут отображаться в этом расположении с соответствующими списками acl, унаследованными от родительского каталога.

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

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

<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 Провисионпаккажефораллусерс
Кто можно установить (пользователей или администраторов)? Административный
Где можно запланировать файлы (заблокированное расположение или в любом месте)? Где угодно, помимо%ПФ%\виндовсаппс или%ПФ%\модифиаблевиндовсаппс
Каковы списки ACL в проектируемом каталоге, если он создается? Наследуется от родительского каталога
Может ли один и тот же каталог объявляться более чем одним пакетом? Не разрешается объявлять один каталог для нескольких связанных наборов. Иными словами, если имеется несколько пакетов, объявляющих один и тот же каталог, все они должны быть из одного связанного набора.
Что насчет более чем одного издателя? Нет
Как обрабатываются конфликты? Пакеты и (или) существовавшие ранее файлы объединяются. Конфликтующие файлы разрешаются в указанном порядке приоритета, или имя пакета по алфавиту, если порядок не указан