Visual Studio解决方案包含两种类型的隐藏用户文件。一个是解决方案。suo文件,这是一个二进制文件。另一个是project .user文件,它是一个文本文件。这些文件到底包含哪些数据?

我也一直在考虑是否应该将这些文件添加到源代码控制(在我的情况下是Subversion)。如果我没有添加这些文件,而另一个开发人员签出了解决方案,Visual Studio会自动创建新的用户文件吗?


当前回答

These files contain user preference configurations that are in general specific to your machine, so it's better not to put it in SCM. Also, VS will change it almost every time you execute it, so it will always be marked by the SCM as 'changed'. I don't include either, I'm in a project using VS for 2 years and had no problems doing that. The only minor annoyance is that the debug parameters (execution path, deployment target, etc.) are stored in one of those files (don't know which), so if you have a standard for them you won't be able to 'publish' it via SCM for other developers to have the entire development environment 'ready to use'.

其他回答

你不需要添加这些——它们包含每个用户的设置,其他开发人员不会想要你的副本。

我不会。.suo, .user, obj/bin目录中任何可能改变每个“用户”的内容通常都不适合源代码控制

不要将这些文件添加到版本控制中。这些文件是自动生成的,包含特定于工作站的信息,如果签入到版本控制,将在其他工作站引起麻烦。

您不能对.user文件进行源代码控制,因为这是特定于用户的。它包含远程机器的名称和其他与用户相关的内容。这是一个vcproj相关的文件。

suo文件是一个sln相关的文件,它包含“解决方案用户选项”(启动项目,窗口位置(停靠的内容和位置,浮动的内容),等等。

这是一个二进制文件,我不知道它是否包含“用户相关”的内容。

在我们公司,我们不把这些文件置于源代码控制之下。

正如在其他回答中所解释的,.suo和.user都不应该被添加到源代码控制中,因为它们是特定于用户/机器的(顺便说一下,最新版本VS的.suo被转移到专用的临时目录。VS,应该完全远离源代码控制)。

然而,如果你的应用程序需要一些环境设置来在VS中调试(这样的设置通常保存在.user文件中),准备一个示例文件(命名为.user. sample)并将其添加到源代码控制中以供参考可能会很方便。

在这样的文件中使用相对路径或依赖于环境变量而不是硬编码绝对路径是有意义的,因此示例可能足够通用,可以很容易地被其他人重用。