【发布时间】:2019-05-09 15:16:32
【问题描述】:
应该从源代码管理中排除 .net 应用程序的哪些文件扩展名,为什么?
【问题讨论】:
-
这个问题的反复无常的答案:stackoverflow.com/questions/4095696/…
标签: .net version-control
应该从源代码管理中排除 .net 应用程序的哪些文件扩展名,为什么?
【问题讨论】:
标签: .net version-control
取决于项目,但我的 .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。始终需要在签入之前不断(重新)检查,因此没有明确的列表。
【讨论】:
这实际上取决于您的构建系统。签入运行完整构建所需的最少文件。
通常,这意味着您排除除 csproj 和 *.cs 文件之外的所有内容。如果需要,您可能可以签入您的 .sln 文件。
【讨论】:
我从这个问题中得到了我的清单: Best general SVN Ignore Pattern?
与任何“列表”一样,请务必查看排除项并确保所有排除项都适合/不适合您的需求,但这是一个很好的开始。
【讨论】:
这是我在最近的 .NET 项目中使用的最少条目列表。
*.vs
*.user
*.cache
bin/
obj/
如果有人反对,请随时添加评论。
【讨论】: