消除visual studio解决方案文件夹中的临时文件

时间:2012-09-14 16:03:26

标签: c# c++ vb.net visual-studio

我正在清理来自不同来源的一堆视觉工作室项目/解决方案,并且每个解决方案中都存储了大量临时文件临时文件夹

我想知道哪些文件类型可以安全删除,这样我就可以编写一个脚本来处理繁重的工作,这样当我试图整个文件夹结构组织起来并链接起来时,就会有更少的垃圾来推送正确的共享文件位置。

据我所知,以下文件和文件夹是临时的,可以安全删除:

文件

  • *。SDF
  • *。sln.docstates
  • *。锁
  • *。upgradelogxml
  • *。用户
  • *。vcxproj.filters
  • *。sln.old
  • *。suo.old
  • UpgradeLog.XML
  • *。wixproj.vspscc
  • *。csproj.vspscc
  • *。SCC
  • *。NCB
  • *。选择
  • *。PLG
  • *。APS
  • *。CLW

文件夹

  • _UpgradeReport_Files(文件夹)
  • ipch(文件夹)
  • bin,obj,debug,release和其他构建输出文件夹虽然在构建期间可能会将文件复制到此处...
  • 备份,备份1等......

我甚至不确定这些文件类型是什么,我只知道在打开解决方案时会重新生成它们 - 我知道有更多的文件类型我从旧版本和更新版本中错过了Visual Studio。

是否有任何文件类型应保留在上面的列表中?如果是这样,出于什么原因,还有其他文件类型可以清除而没有任何严重的副作用吗?

总体思路是尽量减少解决方案的大小和复杂性,以便在迁移,移动或重新组织或以其他方式改组时,使“解决方案脂肪”成为严重的性能和管理问题。

通常我会看到这个问题,如果我需要检查一些新的源代码控制系统,压缩并通过电子邮件发送示例代码或将第三方或同行代码放入共享文件夹和文件的现有层次结构中。

2 个答案:

答案 0 :(得分:13)

我不同意你的“临时”文件列表 - 当然其中很少是暂时性的(否则它们会在%TEMP%目录中)。当然,大多数都不是您的项目成功构建所必需的,但它们仍然很重要。

  • sdf - SQL Server Compact数据库。由VS2012用于存储VC智能感知数据。如果没有这个文件,你将无法在重建之前获得智能感知和代码完成。
  • sln.docstates - 存储有关解决方案中文件的临时状态信息。
  • suo - 包含有关每个解决方案IDE自定义设置的信息,例如窗口布局和工具箱装载。删除它通常是安全的,但您的解决方案将来可能需要更长时间才能加载,并且您将丢失任何UI自定义。
  • upgradelog.xml - 是的,升级日志文件有点混乱。这可以删除。
  • 用户 - 我确定这是VC6天的旧文件......
  • vcxproj.filters - 保留这个,这是一个每台计算机/每个项目的文件系统组织列表thingie
  • sln.old - “旧”文件不是VS文件。这看起来像是由用户或工具制作的备份文件。
  • suo.old -
  • UpgradeLog.XML - 如果您没有使用UpgradeLog工具
  • ,可以将其删除
  • wixproj.vspscc - 如果您正在使用源代码管理,请永远不要删除此文件。它是VS的源代码控制集成的一部分。在删除绑定文件后,尝试将未经检查的更改重新集成到源代码控制中。如果您没有使用源代码管理,请仅删除此内容。
  • csproj.vspscc - 与上述相同。
  • SCC - 用于源代码管理。如果您正在使用源代码管理,请不要删除它。
  • ncb - 在VC6到2010中使用的智能感知缓存。如果删除它,您将失去VC智能感知,直到IDE重建它,这可能会对大型项目产生影响。

我不知道这个或其他文件是什么:.opt,.plg,.aps,.clw

当然,诀窍是首先在解决方案中正确排列文件。项目源文件应与项目元数据(即上面刚刚列出的文件)分开,理想情况下是在他们自己的层次结构中的单独文件夹中(这样,您可以为同一源代码创建多个VC项目文件,允许贡献者使用VC2005, 2008年和2010年同时)。

答案 1 :(得分:10)

查看this Visual Studio .gitignore question答案中列出的文件夹和扩展程序,了解通常被认为不重要的文件。

但是,如果你不知道它是什么,一般来说删除东西并不是一个好主意。例如,.sdf文件可能是SQL Server CE数据库,这在某些项目中可能很重要。因此,在运行任何解决方案清理程序脚本之前,请确保在某处进行备份。