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


415

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

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


4
我建议不要将大小超过50MB的东西用于某些用途。尝试将它们移动到桌面或其他设备上,运行它,如果崩溃,将它们移回桌面。
2012年

1
我无法真正测试我的原始方案,但我记得一切都已卸载。由于有人说他们遇到了问题,因此我撤消了已接受的答案。请记住,我使用的是2012 RC。
本L

@BenL即使我明白当您说“我无法真正测试我的原始情况,但我记得一切都已卸载,一切正常。由于有些人说他们遇到了问题,所以我撤消了公认的答案。” 我认为下面的答案(迄今为止最受欢迎的答案)使任何人都可以通过将文件夹移动并指向具有更多空间的驱动器来解决此问题。它甚至可以与离线媒体一起使用。所以,你可以简单地重新安装/插入你的存档DVD /重新连接外部驱动器,如果这就是你这个移动也,在卸载,维修保养等的时间
高射炮DiNenno

1
@FlakDiNenno我喜欢您的解决方法。但是问题在于是否可以安全删除,而不是可以安全安装或脱机。
本L

@BenL好点。我添加了一些详细信息以及Microsoft的链接,该链接绝对建议您不要删除该文件夹及其原因。
Flak DiNenno 2014年

Answers:


387

TL; DR:请勿删除此文件夹

(有关变通方法,请参见下文)


为什么不?

关于是否存在此文件夹(由于删除该文件夹)是否会在所有情况下(实际上是在正常操作期间,重新安装,补丁/升级,修复安装或卸载。但是,微软的建议显然是不要删除它

Microsoft开发人员工具博客→ 这里

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

Visual Studio 2012提示来源

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


解决方案/全面解决方案:

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

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

每当提示您输入媒体/接收到有关丢失文件/缺少位置的任何错误时,只要确保尚未重新安装/重新插入驱动器/媒体,就只需确保它尚未处于活动分区中即可。

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

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

  1. 您可以将相关文件夹移动到新位置
  2. 创建结点

    • 选项1.(本机):只需发出内置的Windows Vista / 7/8命令和cmd提示符:

      mklink /J oldpath newpath
      

      注意:如果您使用newpath绝对值,则无需断开指向的指针,就可以移动链接newpath。如果您是newpath亲戚,则只要断开链接和目标TOGETHER并保持其相对路径,就可以防止断开链接。

    • 选项2(使用工具):另一个伟大的选择是一个自由方便的工具我已经使用了多年的所谓“链接外壳扩展”。LSE是免费的,您可以在这里(或Google上找到):http : //schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

      LSE允许您创建符号链接,硬链接,联结,智能副本,智能克隆,智能镜像,智能移动,接合,多个源以及坦率地说我觉得太令人困惑的其他东西。但是,这是一个出色的免费产品,它创建Windows资源管理器上下文菜单,允许您右键单击LINK-TARGET文件夹,然后将其拖动到要创建实际链接的位置。您当然可以将链接重命名为所需的任何内容。


20
这是很好的解决方案。我需要通过将文件移动到其他驱动器来清理我的SSD C驱动器。非常感谢
marek

7
+1用于Hardlink Shell扩展。没有它就无法生存。
丹尼斯·G

144
亲爱的Microsoft:请不要使用名称“缓存”来描述一个文件夹,该文件夹在删除时会引起很多麻烦。谢谢。
Todd Menier

9
通过移动到另一个驱动器并建立连接来达到目的。今天运行VS2015 SP3安装程序,该安装程序使联结转移到普通目录(可能是在卸载某些组件的旧版本时,它通过“空”父目录递归删除了它们)–联结和幼稚的空目录存在已知问题测试)。因此,它在C:\ ProgramData \ Package Cache中放置了新组件,然后在结点以前指向的新位置中找不到项目。只是警告未来的读者,可能需要重新建立连接。
Ben Voigt

5
作为更永久的修补程序,请使用NTFS权限并拒绝对联结本身的“删除”权限。
Ben Voigt


22

正确的答案似乎是,如果删除它,VS 2012将无法卸载,但否则不需要这样做。因此:

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

    a)在需要时将文件移回

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

连接点和符号链接是将系统文件移动到另一个驱动器的唯一答案。它们是Windows本身都不具备的NTFS文件系统级功能,因此与UNIX / Linux / BSD同类产品相比,它们应该谨慎使用(与潜在的安全风险),因为它们已经存在了很长的时间在该OS系列和UNIX / Linux / BSD程序上,他们都知道如何处理它们。


2
联结是棘手的野兽,将说谎于Windows资源管理器中,告诉您文件占用C上的磁盘空间 -如果这是要打开联结的属性对话框,则其显示的“磁盘大小”等于它在实际所在磁盘上的大小,那么我同意它具有误导性。但是,实际连接的文件夹的大小并不等于C驱动器的属性对话框显示的C驱动器上已使用的总空间。在这种情况下,你的说法是一种误导;-)
Sнаđошƒаӽ

18

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


12

在安装Visual Studio 2012之后,我注意到了该文件夹,就我而言,它包含在Visual Studio 2012安装中的所有内容,我手动将其删除,包括Visual Studio在内的所有内容似乎都可以正常工作。


7
这是公认的答案,这是错误的。如果您删除此文件夹,则将无法卸载或更新Visual Studio(以及相关工具和可再发行文件- 如果发布了对MSVC运行时的更新,则将导致安全问题)
kinokijuf 2013年

5
您错了,我可以毫无问题地用最新更新来更新Visual Studio 2012。谢谢。
约翰·史文森

12

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

"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe" --nocache

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

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


在安装vs2017之后是否有人测试过禁用和删除缓存?
本L

1
@BenL:它对我有用。
0xA3

这似乎是删除“程序包缓存”文件夹的正确方法。唯一的问题是,调用还不够:您实际上必须通过安装程序执行一个操作(例如升级或重新安装Visual Studio)。
rsenna '18

7

否。如果删除此文件夹,则将无法卸载(可能更新)Visual Studio。


7

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

在卸载Visual Studio以准备安装比以前使用的硬盘小的SSD时,我找到了此目录。这台计算机不再是开发站。

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

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

因此,问题来了:我确实删除了该目录。

它很大,因此有助于我更好地装入SSD。

现在一天之后,我还没有发现任何问题。


6
几个月后,仍然没有问题。
SDsolar '17

1

通常最好不要手动删除这些文件,而应将此任务留给Windows磁盘清理或其他磁盘清理工具进行。我个人使用并可以推荐您的是CCleaner

CCleaner可以帮助您自动在程序中查找过时的文件并为您删除它们。


13
要非常小心; 这些程序绝不是万无一失的。众所周知,CCleaner会删除某些程序运行所必需的文件,某些选项会删除保留用于卸载的文件。
Bob

4
CCleaner或多或少只是cr脚。尝试使用此工具后,我不得不还原我的计算机(由于无法启动)。最好不要使用它。
充满希望的2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.