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


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

Чтобы удовлетворить определенные требования, приложения могут требовать, чтобы файлы отображались в существующем каталоге установки. Например, если определенное приложение ожидало файл в папке, например 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> 

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

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

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