在任何位置根據封裝的應用程式目錄建立目錄
為了滿足特定需求,應用程式可能會要求檔案出現在其現有的安裝目錄中。 例如,如果特定應用程式預期資料夾中有檔案,例如 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>
投射的考慮
使用這項功能之前,請注意下列事項清單:
考量 | Description |
---|---|
如何安裝具有專案功能的套件? | 套件必須透過 ProvisionPackageForAllUsers API 安裝 |
神秘可以將它安裝 (使用者或系統管理員) 嗎? | 管理 |
在哪裡可以將檔案投射到 (鎖定的位置,或所有) 的任何地方? | 除了%pf%\windowsapps 或%pf%\modifiablewindowsapps 以外的任何位置 |
如果我們建立了投影目錄上的 Acl,會有什麼? | 繼承自父目錄 |
有多個套件可以宣告相同的目錄嗎? | 我們不允許有多個相關的集合宣告相同的目錄。 換句話說,如果有多個宣告相同目錄的封裝,它們必須全部來自相同的相關集合。 |
那麼一個以上的發行者呢? | No |
衝突的處理方式為何? | 合併封裝和/或預先存在的檔案。 如果未指定順序,則會以指定的優先順序或依字母順序來解析衝突的檔案 |