我可以删除文件夹 C:\ProgramData\Package Cache\ 吗?

Ben*_*n L 466 windows disk-space

有一个充满安装程序的新文件夹位于C:\ProgramData\Package Cache\. 我相信这是来自 Visual Studio 2012 RC。

我可以删除这些千兆字节的数据而不会产生任何后果吗?它们都是临时文件吗?这是一个测试版产品,所以我不确定有多少关于这个文件夹的信息。

Fla*_*nno 427

TL;DR:不要删除这个文件夹

(有关解决方法,请参见下文)


为什么不?

关于缺少此文件夹(由于删除它)是否会在所有情况下实际和在所有情况下导致 Visual Studio 安装问题,即在正常操作、重新安装、修补/升级、修复安装或卸载。但是,MICROSOFT 的建议显然是不要删除它

来自Microsoft 开发人员工具博客?这里

在修复、修改或卸载产品或安装或卸载补丁时,如果需要源媒体,则会自动使用包缓存,大多数用户永远不会看到提示。只有当包缓存丢失或不完整时,Visual Studio 安装程序才会提示下载(如果已连接)或定位媒体,如下面的屏幕截图所示。

Visual Studio 2012 提示源

从媒体安装的用户甚至可以选择下载(如果已连接)。因此,虽然很少有客户会看到此对话框,但我们希望确保体验简单。
即使我们会在丢失包时提示将包下载到缓存中,但我们建议用户不要删除包缓存。不仅缓存被许多其他与 Burn 一起安装的产品所使用,并且可能无法提供相同的下载体验,而且在某些情况下,Windows Installer 可能需要我们无法处理的源代码,因为我们的代码没有运行。


#Solution/Work-Around:# 如果您需要回收此空间,最安全的做法是避免“删除”任何内容,而是移动此文件夹及其所有文件。您可以按照以下说明安全地对任何本地/实时、在线、近线或离线存储执行此操作,只要该存储系统可以安装到驱动器号或 NTFS 文件系统上的任何安装点即可。以下任何一项都将起作用:

  • 另一个活动(挂载)分区
  • 带有实时文件系统(如 FAT 或 NTFS)的光盘(CD、DVD 等)
  • 外置硬盘
  • USB 驱动器
  • 网络驱动器

每当系统提示您输入媒体/收到有关丢失文件/丢失位置的任何错误时,您只需确保重新安装/重新插入您的驱动器/媒体(如果它不是活动分区)。

移动后,为了“链接”旧的安装点/位置(在大多数情况下C:\ProgramData\Package Cache\),您只需为其创建一个目录junction

Junctionsfile system 级别上被识别为FSTAB. 因此,它对所有程序都是透明的,包括操作系统本身。换句话说,它不被视为一个简单地指向另一个位置(如 a shortcut)的文件,因此总是可以正常工作。

  1. 您将有问题的文件夹移动到新位置

  2. 创建连接点

    注意:如果您使用newpath绝对值,您将能够移动链接而不会破坏指向newpath. 如果您创建了newpath相对路径,您将能够防止断开链接,只要您同时移动链接和目标并保持它们的相对路径。

    • 选项 2.(使用工具):另一个很棒的替代方法是我多年来一直使用的免费实用实用程序,称为“Link Shell Extension”。LSE 是免费的,你可以在这里找到它(或谷歌):http : //schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

      LSE 允许您创建符号链接、硬链接、连接点、智能副本、智能克隆、智能镜像、智能移动、拼接、多个源,以及坦率地说,我觉得阅读起来太混乱的一堆其他东西。但是,它是一款出色的免费产品,它创建了一个 Windows 资源管理器上下文菜单,允许您右键单击 LINK-TARGET 文件夹,然后将其拖动到您想要创建实际链接的位置。您当然可以将链接重命名为您想要的任何名称。

  • 尊敬的微软:请不要使用名称“缓存”来描述删除时会引起如此头疼的文件夹。谢谢。 (210认同)
  • 这是一个很好的解决方案。我需要通过将文件移动到其他驱动器来清理我的 SSD c 驱动器。非常感谢 (25认同)
  • 移动到另一个驱动器并进行交叉路口的技巧。今天运行 VS2015 SP3 安装程序,安装程序导致结点转移到普通目录(可能在卸载某些组件的旧版本时,它通过“空”父目录递归删除它们——结点和天真的空目录存在已知问题测试)。因此,它将新组件放置在 C:\ProgramData\Package Cache 中,然后在之前连接点指向的新位置找不到项目。只是对未来读者的警告可能需要重新建立该路口。 (10认同)
  • +1 硬链接外壳扩展。没有它就活不下去。 (9认同)
  • 作为更永久的修复,使用 NTFS 权限并拒绝对联结本身的“删除”权限。 (5认同)
  • 这现在似乎已经过时了。请参阅 https://docs.microsoft.com/en-us/visualstudio/install/disable-or-move-the-package-cache (4认同)
  • 我在想如果需要的包不在缓存中,VS 会下载它。所以我只想删除它。如果我遇到问题,我稍后会更新此评论。 (2认同)
  • 我知道此文件夹存在的唯一原因是因为我正在尝试使用“程序和功能”面板卸载 VS 2013,虽然出现了显示“Visual Studio”的黑框,但没有卸载程序到达。所以,好奇程序和功能列表中的项目甚至指向什么,我在磁盘上寻找它并找到了这些包缓存。我现在无法卸载或安装 VS(并且安装的版本没有启动),所以我认为删除这个文件夹是我必须重新安装 Windows 才能再次运行之前的最后手段。 (2认同)

小智 53

安装 VS2012 后,我在笔记本电脑上找到了相同的文件夹。我尝试将该文件夹重命名为“__Package Cache”。当我尝试卸载 VS2012 时,卸载过程无法启动。

在此处获得更多信息。


0xA*_*xA3 31

对于 Visual Studio 2017,您可以通过调用禁用包缓存(即使在安装 Visual Studio 之后):

"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe" --nocache
Run Code Online (Sandbox Code Playgroud)

我从中获得了大约 2 GB 的系统驱动器磁盘空间(YMMV)。

有关详细信息,请参阅文档:Visual Studio 文档:禁用或删除包缓存

  • 通过移动 VS 包缓存,我确实设法在主驱动器上节省了大量空间,**但是**我认为它不能回答这个问题。由于移动 VS 包缓存而最终几乎为空的文件夹是“C:\ProgramData\Microsoft\VisualStudio\Packages”,而不是“C:\ProgramData\Package Cache”。 (5认同)
  • 这似乎是删除 Package Cache 文件夹的正确方法。唯一的问题是,调用是不够的:您实际上必须通过安装程序执行操作(例如升级或重新安装 Visual Studio)。 (3认同)

Jon*_*win 26

正确的答案似乎是如果删除它,VS 2012 将无法卸载,否则不需要。所以:

  1. 您可以将文件留在那里。一切正常,但会占用大量磁盘空间。
  2. 你可以删除文件,如果你想卸载VS 2012,你可以重新运行原来的安装程序把文件放回去,然后卸载。
  3. 您可以将文件移动到另一个具有更多可用空间的驱动器,并且:

    a) 需要时将文件移回

    b) 按照 Flak 的建议创建一个结点(警告:结点是棘手的野兽,并且会欺骗 Windows 资源管理器,告诉您文件占用 C 上的磁盘空间:当它们真的在另一个驱动器上时!)

连接和符号链接是将系统文件移动到另一个驱动器的唯一答案。它们是 NTFS 文件系统级别的功能,即使是 Windows 本身也没有注意到,因此是一个非常大的锤子(和潜在的安全风险),与它们的 UNIX/Linux/BSD 对应物不同,应该谨慎使用,因为它们已经存在了很长时间在那个操作系统家族和 UNIX/Linux/BSD 程序上知道如何处理它们。

  • *连接是棘手的野兽,它会欺骗 Windows 资源管理器,告诉您文件占用 C* 上的磁盘空间 - 如果您的意思是当您打开连接的属性对话框时,它会显示“磁盘大小”等于它在实际所在磁盘上的大小,那么我同意它具有误导性。但是,实际 * 连接 * 文件夹的大小加起来并不等于 C 驱动器属性对话框显示的 C 驱动器上的总使用空间。在这种情况下,您的陈述具有误导性;-) (3认同)

小智 18

所有软件的安装程序都保存在此文件夹中。删除此文件夹后尝试卸载软件时会失败。


Joh*_*son 13

我在安装 Visual Studio 2012 后注意到了这个文件夹,在我的情况下,它包含在 Visual Studio 2012 安装中的所有内容,我手动删除了它,一切似乎都在工作,包括 Visual Studio。

  • 这是公认的答案,它是**错误的**。如果您删除此文件夹,您**将无法** 卸载或更新 Visual Studio(以及相关工具和可再发行组件 — 如果 MSVC 运行时更新出来,这 ** 会** 导致安全问题) (9认同)
  • 你错了,我没有任何问题设法用最新的更新更新 Visual Studio 2012。谢谢。 (8认同)

SDs*_*lar 11

是的,如果您已卸载 Visual Studio,您可以删除此目录。

我在卸载 Visual Studio 后找到了这个目录,准备安装比我之前使用的硬盘更小的 SSD。这台电脑不再是一个开发站。

卸载 Visual Studio 留下了一些其他软件,如连接到本地 SQL 服务器的程序,我没有。我卸载了它。

它还留下了几个 .NET 程序,但我不知道哪些可以安全卸载,所以我将它们留在原地。

所以问题的关键是:我确实删除了这个目录。

它非常大,所以帮助我更好地适应我的 SSD。

现在一天后我没有注意到任何问题。

  • 几个月后,仍然没有问题。 (11认同)
  • 当心!包缓存**不**仅与 Visual Studio 相关!我刚刚在卸载所有 VS 安装后删除(好吧,回收)该文件夹,几分钟后在尝试卸载飞行模拟器时遇到了问题!卸载程序位于这个文件夹中。 (6认同)

kin*_*juf 8

不可以。如果删除此文件夹,您将无法卸载(也可能无法更新)Visual Studio。