【问题标题】:Eliminate temporary files in visual studio solution folder消除 Visual Studio 解决方案文件夹中的临时文件
【发布时间】:2012-09-14 16:03:26
【问题描述】:

我正在清理一堆来自不同来源的 Visual Studio 项目/解决方案,每个解决方案中都存储了大量的临时文件临时文件夹

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

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

文件

  • *.sdf
  • *.sln.docstates
  • *.suo
  • *.upgradelogxml
  • *.user
  • *.vcxproj.filters
  • *.sln.old
  • *.suo.old
  • 升级日志.XML
  • *.wixproj.vspscc
  • *.csproj.vspscc
  • *.SCC
  • *.ncb
  • *.opt
  • *.plg
  • *.aps
  • *.clw

文件夹

  • _UpgradeReport_Files(文件夹)
  • ipch(文件夹)
  • bin、obj、debug、release 和其他构建输出文件夹,尽管在构建过程中可能会有文件复制到此处...
  • 备份、Backup1 等...

我什至不确定其中一些文件类型到底是什么,我只知道当您打开解决方案时它们会重新生成 - 而且我知道在旧版本和新版本的视觉工作室。

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

总体思路是在迁移、移动、重组或以其他方式调整解决方案时,尽量减少解决方案的规模和复杂性,从而使这个“解决方案脂肪”成为严重的性能和管理问题。

如果我需要将某些内容签入新的源代码控制系统、压缩并通过电子邮件发送示例代码或将第三方或对等代码放入现有的共享文件夹和文件层次结构中,我通常会看到此问题。

【问题讨论】:

  • 我会保留 Bin 文件夹。有时包含引用的 .dll 文件
  • 像这样的工作区清洁器怎么样:codeproject.com/Articles/10855/Clean-Visual-Studio-Workspaces
  • 虽然当我看到上一个链接中的应用程序似乎太旧而无法处理大量 .NET 临时文件。
  • 我已经尝试过其中一些“工作区清洁器”,它们似乎非常有故障和危险。我在想可能需要某种“预览功能”。也许这是 CCleaner 的新功能?
  • @Malione 当你“清理”一个项目时,bin 文件夹会被清空,所以你不应该依赖缓存在那里的引用。我更喜欢在名为“_References”的文件夹中制作引用的 DLL 的硬拷贝。我也向其他人推荐这个。

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


【解决方案1】:

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

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

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

当然,诀窍是首先在解决方案中正确安排文件。项目源文件应该与项目元数据(即我刚刚在上面列出的文件)分开保存,最好是在它们自己的层次结构中的单独文件夹中(这样您可以为同一源代码拥有多个 VC 项目文件,允许贡献者使用 VC2005, 2008 年和 2010 年)。

【讨论】:

  • 很棒的信息。我知道这些文件实际上是增值的,但是当它们自动生成时,我认为它们不是“源文件”。这就是为什么我希望它们在进入源代码控制或开始大洗牌以将事物组织成新结构之前全部消失。就像我不将输出二进制文件检查到源代码管理中一样,而是将它们保存在磁盘上的构建区域中。
  • 没必要。 VS 自动从源代码管理中排除输出文件。事实上,VS 会自动从源代码控制中排除诸如智能缓存之类的东西。
  • 我的项目运行缓慢并且显示不正确的智能感知数据(没有任何数据的错误等)。我想找到一种方法来清除临时数据。虽然很高兴知道 Day 提供的信息,但最终我不同意他的评估,即一般不应删除它们,并感谢他提供的信息作为删除这些文件的好方法。我不在乎建造是否需要更长的时间,如果我能帮助确保远处的东西干净。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 2010-10-16
    相关资源
    最近更新 更多