【问题标题】:What .net files should be excluded from source control?哪些 .net 文件应从源代码管理中排除?
【发布时间】:2019-05-09 15:16:32
【问题描述】:

应该从源代码管理中排除 .net 应用程序的哪些文件扩展名,为什么?

【问题讨论】:

标签: .net version-control


【解决方案1】:

取决于项目,但我的 .gitignore 中有 Silverlight + WPF 项目的以下内容:

# Visual Studio left-overs
*.suo        # 'user' settings like 'which file is open in Visual Studio'
*.ncb        # Used for debugging
*.user
*.ccscc      # Used for versioning
*.cache

# Editor left-overs
*~           # (x)emacs
*.bak        # Windows related
\#*\#        # (x)emacs
*.orig       # Own usage

# Compiled files
*/bin/
*/obj/
*/Obj/       # git is case sensitive
*/Generated_Code/
PrecompiledWeb
*/ClientBin
# Windows left-overs
Thumbs.db    # Having images in the source tree generates those files in Explorer

但是,“.suo”有些问题:它还包含应该是项目设置的“用户”设置,例如 Silverlight 应用程序的启动页面。

最好也是唯一的方法是迭代地添加要排除的文件。如果您使用 git,请使用 git-gui 以交互方式快速查看您忘记排除的文件列表。调整 .gitignore 并在 git-gui 中刷新。迭代,直到剩下的文件是您输入的文件。

某些类型的文件在前面不是很清楚。确保您了解您签入的所有文件。例如,对于 Silverlight 项目中的 RIA 服务,我们有一个由 Visual Studio 生成的身份验证数据库,其中包含 2 个帐户,并生成了一个 10Mb 的 .MDB 数据库文件(!)。一旦我们了解了它的来源,将其更改为 SQL 转储将大小减少到(仍然很大)500Kb。始终需要在签入之前不断(重新)检查,因此没有明确的列表。

【讨论】:

  • 如果您使用的是 ReSharper,还请添加 _ReSharper*/ - 无需对其缓存进行版本控制。
【解决方案2】:

这实际上取决于您的构建系统。签入运行完整构建所需的最少文件。

通常,这意味着您排除除 csproj 和 *.cs 文件之外的所有内容。如果需要,您可能可以签入您的 .sln 文件。

【讨论】:

    【解决方案3】:

    我从这个问题中得到了我的清单: Best general SVN Ignore Pattern?

    与任何“列表”一样,请务必查看排除项并确保所有排除项都适合/不适合您的需求,但这是一个很好的开始。

    【讨论】:

      【解决方案4】:

      这是我在最近的 .NET 项目中使用的最少条目列表。

      *.vs
      *.user
      *.cache
      bin/
      obj/
      
      • 第一个条目省略了隐藏文件夹 .vs 及其内容。
      • 最后两个省略了这些文件夹下的任何内容。

      如果有人反对,请随时添加评论。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-23
        • 2010-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多