我应该将Visual Studio .suo和.user文件添加到源代码管理中吗?

扶醉桌前 提交于 2019-12-18 17:46:51

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

Visual Studio解决方案包含两种类型的隐藏用户文件。 一个是解决方案.suo文件,它是一个二进制文件。 另一个是项目.user文件,它是一个文本文件。 这些文件包含的确切数据是什么?

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


#1楼

MSDN网站上 ,它明确指出

解决方案用户选项(.suo)文件包含每用户解决方案选项。 不应将此文件签入源代码控制

所以我会说在检查源代码控制的东西时忽略这些文件是相当安全的。


#2楼

如果在ProjectProperties> Debugging> Environment中设置可执行目录依赖项,则路径将存储在“.user”文件中。

假设我在上面提到的字段中设置了这个字符串: “PATH = C:\\ xyz \\ bin”这是如何存储在'.user'文件中的:

<LocalDebuggerEnvironment>PATH=C:\\xyz\\bin$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>

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

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


#3楼

不要将任何这些文件添加到版本控制中。 这些文件是自动生成的,具有工作站特定信息,如果签入版本控制将导致其他工作站出现问题。


#4楼

不,他们不应该致力于源代码管理,因为他们是开发人员/机器特定的本地设置。

GitHub维护Visual Studio用户忽略的建议文件类型列表, 网址https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

对于svn,我有以下global-ignore属性集:

* .DotSettings.User
* .onetoc2
名为.suo *
.VS
PrecompiledWeb
的Thumbs.db
OBJ
箱子
调试
*。用户
* .vshost。*
* .tss
* .dbml.layout


#5楼

正如其他答案中所解释的那样, .suo.user都不应该添加到源代码控制中,因为它们是用户/机器特定的(对于最新版本的VS,BTW .suo被移动到专用的临时目录.vs ,应该是完全没有源控制)。

但是,如果您的应用程序需要在VS中进行一些环境调试(这些设置通常保存在.user文件中),那么准备一个示例文件(将其命名为.user.SAMPLE )并将其添加到源代码控制中可能很方便。引用。

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!