visual-studio - 我应该将VisualStudio .suo 和.user文件添加到源代码管理?

  显示原文与译文双语对照的内容

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

我还想知道我是否应该将这些文件添加到源代码管理( 我的案例中的Subversion ) 。 如果我不添加这些文件,另一个开发人员签出解决方案,Visual Studio 会自动创建新的用户文件?

时间:

这些文件包含一般特定于你机器的用户首选项配置,所以最好不要将它的放在SCM中。 另外,vs 就要将它几乎每次你执行它,所以它永远是有它的特点的单片机作为'已经更改'。 我也不包括,我在一个使用 vs 2年的项目中,并且没有任何问题。 惟一的小烦恼是,( 不知道哪个) ( 执行路径,部署目标,等等 ) 调试参数都存储在其中的一个文件,所以如果你有一个标准的,他们将不能以'发布'不以单片机,使其他开发者能够有整个开发环境'准备使用'。

这些--不需要添加per-user设置,其他开发者也不需要你的拷贝。

其他人解释了为什么将 *.suo 和 *.user 文件添加到源代码管理不是一个好主意。

我建议你将 svn:ignore 属性设置为包含这些类型的文件,原因如下:

  1. 所以其他开发者不会得到开发者的一个设置。
  2. 因此,当你查看状态或者提交文件时,这些文件不会弄乱代码库,也不会掩盖你需要添加的新文件。

我们不提交二进制文件( * 。),但我们提交. user 文件。 .user 文件包含用于调试项目的启动选项。 你可以在选项卡"调试"中的项目属性中找到启动选项。 我们在一些项目中使用了 NUnit,并将 nunit-gui.exe 配置为项目的开始选项。 如果没有. user 文件,每个团队成员都必须单独配置它。

希望这有帮助

因为我发现这个问题/回答通过谷歌在 2011,我想我会花一秒钟和添加到列表中可能不应该添加到版本控制( IDE将把它们 re-create ) 文件的Visual Studio 2010所创建的*.SDF 文件的链接。 由于我不确定 *.sdf 文件在别处是否有合法用途,所以我只忽略了来自SVN的特定 [projectname] 。sdf文件。

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

不,你不应该将它们添加到源代码管理中,因为- 就像你所说- 它们是用户特定的。

( 解决方案用户选项): 记录你可能与解决方案关联的所有选项,这样每次打开它时,它都包括你所做的定制。

.user 文件包含项目( SUO是用来解决这个问题的)的用户选项,并扩展项目文件名( 例如。 anything.csproj.user 包含 anything.csproj 项目的用户设置。

默认情况下视频微软的源代码管理,因为它们user-specific中创建自定义控件不包含这些文件的设置文件。 如果你使用SVN作为源代码管理,我将遵循这个模型。

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

我不知道你的项目为什么将DebuggingWorkingDirectory存储在文件中。 如果是用户指定的设置,你应该考虑将它的存储在 *.proj.user 文件名中。 如果该设置可以在项目中的所有用户之间共享,你应该考虑将它的存储在项目文件本身中。

甚至不考虑将suo文件添加到源代码管理 ! ( soluton用户选项) 文件用于包含user-specific设置,不应在同一解决方案的用户之间共享。 如果还能将中的热点文件在单一副本群集中数据库中我不知道有哪些其他事情在IDE添加你已经破解,但从版本管理的角度出发你会影响网络项目单一副本群集中集成,不同用户的局域网 vs 互联网插件所使用的方式,访问,并且你甚至可以造成多人单一副本群集中把完全( 存储在文件中的VSS数据库路径可能对其他用户无效) 。

Alin ( )

Visual Studio 将自动创建它们。 我不建议将它们放在源代码管理中。 开发者box,上已有大量的开发者文件被从而导致 vs 运行的时候本地SOU轴 erratically. 删除文件,然后让 vs 重新创建它总是修复问题。

这些文件是user-specific选项,它们应该独立于解决方案本身。 Visual Studio 将根据需要创建新的,因此不需要签入源代码管理。 事实上,最好不要这样做,因为这样可以让单个开发者定制他们的环境。

...