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

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


当前回答

不,它们不应该用于源代码控制,因为它们是开发人员/机器特定的本地设置。

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

其他回答

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和*。在源代码控制下的用户文件不是一个好主意。

我建议你将这些模式添加到svn:ignore属性中,原因有二:

这样其他开发商就不会倒闭了 一个开发人员的设置。 所以当你查看状态或提交时 文件,这些文件不会使代码库变得混乱,也不会使您需要添加的新文件变得模糊。

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

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

Visual Studio会自动创建它们。我不建议把它们放在源代码控制中。曾经有很多次,本地开发人员的SOU文件导致VS在开发人员的盒子上表现不稳定。删除文件,然后让VS重新创建它总是修复问题。

如果你在ProjectProperties>Debugging>Environment中设置了可执行目录依赖项,路径将存储在'。用户的文件。

假设我在上面提到的字段中设置这个字符串:"PATH=C:\xyz\bin" 这就是它被存储在'中的方式。用户的文件:

< LocalDebuggerEnvironment >路径= C: \ xyz \ bin美元(LocalDebuggerEnvironment) < / LocalDebuggerEnvironment >

这对我们在OpenCV中工作有很大帮助。我们可以为不同的项目使用不同版本的OpenCV。另一个优点是,在新机器上建立我们的项目非常容易。我们只需要复制相应的依赖dirs。所以对于一些项目,我更喜欢添加'。用户'到源代码控制。

尽管如此,它完全依赖于项目。你可以根据自己的需要接听电话。