将 .sln 文件提交到源代码控制中是最佳实践吗?在何时适当或不适当这样做?
更新 回答中提出了几个很好的观点。感谢回应!
将 .sln 文件提交到源代码控制中是最佳实践吗?在何时适当或不适当这样做?
更新 回答中提出了几个很好的观点。感谢回应!
从其他答案中可以清楚地看出,解决方案文件很有用,应该提交,即使它们没有用于正式构建。对于任何使用Visual Studio功能(如转到定义/声明)的人来说,它们都是很方便的。
默认情况下,它们不包含绝对路径或任何其他特定于机器的内容。(不幸的是,一些插件工具不能正确地保持这个属性,例如AMD CodeAnalyst。) 如果你在项目文件(包括C++和C#)中小心使用相对路径,它们也将独立于机器。
也许更有用的问题是: 你应该排除哪些文件? 这是我VS2008项目.gitignore文件的内容:
*.suo
*.user
*.ncb
Debug/
Release/
CodeAnalyst/
(最后一个条目仅针对AMD CodeAnalyst分析器。)
对于VS 2010,您还应该排除以下内容:
ipch/
*.sdf
*.opensdf
是的--我认为它总是合适的。用户特定设置位于其他文件中。
是的,你应该这样做。解决方案文件仅包含有关解决方案的总体结构的信息。该信息对解决方案全局有效,并且可能适用于项目中的所有开发人员。
它不包含任何特定于用户的设置。
你绝对需要它。除了其他人提到的原因外,还需要它来实现整个项目的一步构建。
是的,你应该提交以下内容:
不应提交以下内容:
关于其他自动生成的文件,请参阅这个线程。
是的,它应该是源代码控制的一部分。 每当您添加/删除应用程序中的项目时,.sln文件都会得到更新,并且将其纳入源代码控制是一个不错的选择。这将使您能够直接构建应用程序代码的早期版本(如果需要的话)。
在大多数情况下,将 .sln 文件提交到源代码控制是一个好主意。
如果你的 .sln 文件是由其他工具(如 CMake)生成的,则将它们放入源代码控制可能是不合适的。
是的,您总是希望包括.sln文件,它包含解决方案中所有项目的链接。
.SUO
文件。 - apandit