移动 ProgramData\Package Cache 文件夹

安装完某些软件后,系统盘里面 Package Cache 文件夹会变得异常巨大,占据宝贵的 SSD 空间。

把文件夹拷贝到其他位置之后,进行如下操作:(以转移到 “E:\ProgramData\Package Cache” 为例)

  1. 打开 regedit,定位到 “HKLM\SOFTWARE\Policies\WiX\Burn” (没有则新建项)
  2. 添加一 REG_SZ 类型名为 PackageCache 的条目,值为 “E:\ProgramData\Package Cache”
  3. mklink /J "C:\ProgramData\Package Cache" "E:\ProgramData\Package Cache"或其他方法建立链接
  4. 打开 “C:\ProgramData” 的高级权限设置,添加主体为 “Everyone” 的拒绝项,只应用到当前文件夹,权限只勾选 “删除子文件夹和文件”
  5. 打开 “C:\ProgramData\Package Cache” 的高级权限设置,添加主体为 “Everyone” 的拒绝项,只应用到当前文件夹,权限只勾选“删除”

  • 新版 WiX 安装程序支持通过注册表指定 PackageCache 位置,旧版位置固定为 “%ALLUSERSPROFILE%\Package Cache”
  • 安装程序在进行修改/卸载操作最后会尝试删除 “%ALLUSERSPROFILE%\Package Cache” 目录,若其为非空文件夹,删除会失败,但在建立链接后,这项操作会导致建立的链接被删除,因此需要设置权限防止其被删除
  • 在 Windows 下要阻止文件被删除但不阻止其他操作,需要对该文件和所属文件夹同时添加关于删除的拒绝项
  • Windows 10 大版本更新时 “C:\ProgramData” 的权限设置会恢复默认