패키지된 앱 디렉터리를 기반으로 모든 위치에 디렉터리 만들기

특정 요구 사항을 충족하기 위해 앱은 기존 설치 디렉터리에 파일을 표시해야 할 수 있습니다. 예를 들어 특정 앱이 C:\Program Files\Contoso와 같은 폴더에 파일을 예상하는 경우 관리자가 해당 디렉터리를 수정할 수 있습니다. Windows 11부터 앱은 WindowsApps 디렉터리 외부의 디렉터리를 지정할 수 있으며 OS는 상위 디렉터리에서 상속된 적절한 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> 

프로젝션에 대한 고려 사항

이 기능을 사용하기 전에 고려 사항 목록은 다음과 같습니다.

고려 사항 설명
프로젝스 기능을 사용하여 패키지를 설치하는 방법 ProvisionPackageForAllUsers API를 통해 패키지를 설치해야 합니다.
누가 설치할 수 있나요(사용자 또는 관리자)? 관리자
파일을 어디에 프로젝스할 수 있나요(잠긴 위치 또는 모든 위치)? %pf%\windowsapps 또는 %pf%\modifiablewindowsapps 이외의 위치
프로젝토리를 만드는 경우 프로젝토리의 ACL은 무엇인가요? 부모 디렉터리에서 상속됨
둘 이상의 패키지가 동일한 디렉터리를 선언할 수 있나요? 둘 이상의 관련 집합이 동일한 디렉터리를 선언하는 것을 허용하지 않습니다. 즉, 동일한 디렉터리를 선언하는 여러 패키지가 있는 경우 모두 동일한 관련 집합에 있어야 합니다.
둘 이상의 게시자는 어떻습니까? 아니요
충돌은 어떻게 처리합니까? 패키지 및/또는 기존 파일이 병합됩니다. 충돌하는 파일은 지정된 우선 순위 순서로 확인되거나 지정된 순서가 없는 경우 패키지 이름을 사전순으로 확인합니다.