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

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

评论

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

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

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

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

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

#1 楼

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

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


为什么不呢?

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

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


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



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



解决方案/工作环境:

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


另一个活动(已安装)分区
具有活动文件系统(如FAT或NTFS)的光盘(CD,DVD等)
外部硬盘驱动器
USB驱动器
网络驱动器

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

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

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


您可以将文件夹移入问题到其新位置

创建结点




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

mklink /J oldpath newpath


注意:如果将newpath设为绝对,则可以移动链接而不会破坏指向newpath的指针。如果使newpath是相对的,则只要您同时移动链接和定位TOGETHER并保持其相对路径,就可以防止断开链接。


选项2。(使用工具):另一个伟大的选择是我多年来一直在使用的名为“ Link Shell Extension”的便捷实用程序。 LSE是免费的,您可以在这里(或Google上找到):http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

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





评论


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

– marek
13年8月15日在16:34

+1用于Hardlink Shell扩展。没有它就无法生存。

–丹尼斯G
2013年12月15日12:47

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

–托德·梅尼尔(Todd Menier)
16年5月11日在23:27

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

– Ben Voigt
16年7月19日在21:15

作为更永久的修复,请使用NTFS权限,并在联结本身上拒绝“删除”权限。

– Ben Voigt
16年7月19日在21:15



#2 楼

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

此处有更多信息。

#3 楼

对于Visual Studio 2017,您可以通过调用以下命令来禁用程序包缓存(即使安装了Visual Studio之后):

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


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

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

评论


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

– Ben L
18年5月29日在18:04

@BenL:它对我有用。

– 0xA3
18年5月30日在16:10

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

–森纳
18/12/21在9:46

通过移动VS包缓存,我确实设法在主驱动器上节省了很多空间,但是我认为它不能回答这个问题。由于移动了VS程序包缓存而最终变成空的文件夹是C:\ ProgramData \ Microsoft \ VisualStudio \ Packages,而不是C:\ ProgramData \ Package Cache。

– Peter Taylor
19年11月8日在10:00

#4 楼

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


您可以将文件保留在那里。一切正常,但会占用大量磁盘空间。
您可以删除文件,如果要卸载VS 2012,可以重新运行原始安装程序以放回文件,然后再卸载。

您可以将文件移动到具有更多可用空间的另一个驱动器,并且可以:

a)在需要时将文件移回

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


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

评论


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

–Sнаđошƒаӽ
17年3月18日在10:14

#5 楼

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

#6 楼

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

评论


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

– Kinokijuf
13年7月13日在12:05



您错了,我可以毫无问题地用最新更新来更新Visual Studio 2012。谢谢。

–约翰·斯文森(Johan Svensson)
13年8月9日在9:16

#7 楼

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

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

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

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

问题的关键:我确实删除了该目录。

它很大,因此帮助我更好地装入了SSD。

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

评论


几个月后,仍然没有问题。

– SDsolar
17年10月2日,下午4:01

小心!包缓存不仅与Visual Studio不相关!卸载所有VS安装后,我只是删除了该文件夹(回收了),几分钟后尝试卸载飞行模拟器时出现了问题!卸载程序位于该文件夹中。

–scape
7月13日21:24

#8 楼

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

#9 楼

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

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

评论


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

–鲍勃
2012年11月16日11:53



CCleaner或多或少只是cr脚。尝试使用此工具后,我不得不还原计算机(由于无法启动)。最好不要使用它。

–绝望的
15年11月16日在13:38