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

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


当前回答

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

其他回答

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'.

由于我在2011年通过谷歌找到了这个问题/答案,我想我应该花点时间添加*的链接。由Visual Studio 2010创建的SDF文件被添加到可能不应该添加到版本控制的文件列表中(IDE将重新创建它们)。因为我不确定a *。sdf文件可能在其他地方有一个合法的用途,我只是忽略了特定的[projectname]。sdf文件。

为什么Visual Studio转换向导2010创建一个巨大的SDF数据库文件?

它们包含有关项目的特定设置,这些设置通常分配给单个开发人员(例如,在调试应用程序时启动的启动项目和开始页面)。

所以最好不要把它们添加到版本控制中,让VS重新创建它们,这样每个开发人员都可以有他们想要的特定设置。

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

这似乎是微软对此事的看法:

添加(并编辑).suo文件到源代码控制

I don't know why your project stores the DebuggingWorkingDirectory in the suo file. If that is a user specific setting you should consider storing that in the *.proj.user filename. If that setting is shareable between all users working on the project you should consider storing it in the project file itself. Don't even think of adding the suo file to source control! The SUO (soluton user options) file is meant to contain user-specific settings, and should not be shared amongst users working on the same solution. If you'd be adding the suo file in the scc database I don't know what other things in the IDE you'd break, but from source control point of view you will break web projects scc integration, the Lan vs Internet plugin used by different users for VSS access, and you could even cause the scc to break completely (VSS database path stored in suo file that may be valid for you may not be valid for another user). Alin Constantin (MSFT)