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

时间:2020-03-05 18:55:57  来源:igfitidea点击:

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

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

解决方案

回答

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

回答

Visual Studio将自动创建它们。我不建议将它们置于源代码管理中。很多时候,本地开发人员的SOU文件导致VS在该开发人员框中的行为异常。删除文件然后让VS重新创建它总是可以解决问题。

回答

默认情况下,Microsoft的Visual SourceSafe不将这些文件包含在源代码管理中,因为它们是用户特定的设置文件。如果我们使用SVN作为源代码管理,我将遵循该模型。

回答

.user是用户设置,我认为.suo是解决方案的用户选项。我们不希望这些文件受源代码管理;将为每个用户重新创建它们。

回答

使用Rational ClearCase的答案是否定的,只有.sln和。* proj应该在源代码控制中注册,我不能为其他供应商提供答案。如果我没记错的话,这些文件是"用户"特定的选项,即环境。

回答

这些文件是用户特定的选项,应独立于解决方案本身。 Visual Studio将根据需要创建新的代码,因此无需将其检入源代码管理。确实,最好不要这样做,因为这样可以使各个开发人员根据自己的喜好自定义其环境。

回答

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

因此最好不要将它们添加到版本控制中,而让VS重新创建它们,以便每个开发人员都可以拥有他们想要的特定设置。

回答

我们不提交二进制文件(* .suo),但是我们提交.user文件。 .user文件包含例如调试项目的启动选项。我们可以在"调试"选项卡的项目属性中找到启动选项。我们在某些项目中使用了NUnit,并将nunit-gui.exe配置为该项目的开始选项。如果没有.user文件,则每个团队成员都必须分别对其进行配置。

希望这可以帮助。

回答

我不会每个"用户"可能更改的任何内容通常在源代码管理中都是不好的。 .suo,.user,obj / bin目录

回答

这似乎是微软对此的看法:
http://social.msdn.microsoft.com/forums/zh-CN/vssourcecontrol/thread/dee90d75-d825-4c76-a30f-016eab15ef7f

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)

回答

我们无法对.user文件进行源代码控制,因为这是特定于用户的。它包含远程计算机的名称以及其他与用户有关的事物。这是一个与vcproj相关的文件。

.suo文件是与sln相关的文件,并且包含"解决方案用户选项"(启动项目,Windows位置(停靠的对象和位置,浮动的对象等),等等)。

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

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

回答

不,我们不应该将它们添加到源代码管理中,因为正如我们所说的,它们是特定于用户的。

SUO (Solution User Options): Records
  all of the options that you might
  associate with your solution so that
  each time you open it, it includes
  customizations that you
  have made.

.user文件包含项目的用户选项(而SUO用于解决方案)并扩展项目文件名(例如,anything.csproj.user包含any.csproj项目的用户设置)。

回答

这些文件包含通常特定于计算机的用户首选项配置,因此最好不要将其放入SCM。另外,VS几乎每次执行时都会对其进行更改,因此SCM始终将其标记为"已更改"。
我也不包括任何人,我在使用VS的项目中工作了2年,并且这样做没有任何问题。唯一的烦恼是调试参数(执行路径,部署目标等)存储在其中一个文件中(不知道是哪个文件),因此,如果我们对它们有标准,则将无法通过SCM将其"发布"给其他开发人员,以使其"随时可以使用"整个开发环境。

回答

其他人已经解释了为什么将* .suo* .user文件置于源代码控制下不是一个好主意。

我建议我们将这些模式添加到svn:ignore属性中有两个原因:

  • 因此,其他开发人员将无法使用一个开发人员的设置。
  • 因此,当我们查看状态或者提交文件时,这些文件不会使代码库混乱,也不会混淆我们需要添加的新文件。