Visual Studio解决方案包含两种类型的隐藏用户文件。一个是解决方案。suo文件,这是一个二进制文件。另一个是project .user文件,它是一个文本文件。这些文件到底包含哪些数据?
我也一直在考虑是否应该将这些文件添加到源代码控制(在我的情况下是Subversion)。如果我没有添加这些文件,而另一个开发人员签出了解决方案,Visual Studio会自动创建新的用户文件吗?
Visual Studio解决方案包含两种类型的隐藏用户文件。一个是解决方案。suo文件,这是一个二进制文件。另一个是project .user文件,它是一个文本文件。这些文件到底包含哪些数据?
我也一直在考虑是否应该将这些文件添加到源代码控制(在我的情况下是Subversion)。如果我没有添加这些文件,而另一个开发人员签出了解决方案,Visual Studio会自动创建新的用户文件吗?
当前回答
Visual Studio会自动创建它们。我不建议把它们放在源代码控制中。曾经有很多次,本地开发人员的SOU文件导致VS在开发人员的盒子上表现不稳定。删除文件,然后让VS重新创建它总是修复问题。
其他回答
.user是用户设置,我认为.suo是用户选项的解决方案。您不希望这些文件处于源代码控制之下;它们将为每个用户重新创建。
不要将这些文件添加到版本控制中。这些文件是自动生成的,包含特定于工作站的信息,如果签入到版本控制,将在其他工作站引起麻烦。
正如在其他回答中所解释的,.suo和.user都不应该被添加到源代码控制中,因为它们是特定于用户/机器的(顺便说一下,最新版本VS的.suo被转移到专用的临时目录。VS,应该完全远离源代码控制)。
然而,如果你的应用程序需要一些环境设置来在VS中调试(这样的设置通常保存在.user文件中),准备一个示例文件(命名为.user. sample)并将其添加到源代码控制中以供参考可能会很方便。
在这样的文件中使用相对路径或依赖于环境变量而不是硬编码绝对路径是有意义的,因此示例可能足够通用,可以很容易地被其他人重用。
你不需要添加这些——它们包含每个用户的设置,其他开发人员不会想要你的副本。
不,它们不应该用于源代码控制,因为它们是开发人员/机器特定的本地设置。
GitHub在https://github.com/github/gitignore/blob/master/VisualStudio.gitignore上为VisualStudio用户提供了一个建议的文件类型列表
对于svn,我有以下global-ignore属性集:
* .DotSettings.User * .onetoc2 *。suo .vs预编译的web thumbs.db obj bin调试 *。user * * .vshost。 * .tss * .dbml.layout