共用方式為


根據已封裝的應用程式目錄在任何位置建立目錄

為了滿足特定需求,應用程式可能需要檔案出現在其現有的安裝目錄中。 例如,如果特定應用程式預期資料夾中有檔案,例如 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 是什麼? 繼承自父目錄
多個套件可以宣告相同的目錄嗎? 我們不允許多個相關集合宣告相同的目錄。 換句話說,如果有多個封裝宣告相同的目錄,它們必須全部來自相同的相關集合。
一個以上的發行者呢?
如何處理衝突? 套件和/或已有的檔案合併。 衝突的檔案將依指定的優先順序解析,若未指定順序,則依照套件名稱的字母順序解析。