Visual Studio解决方案包含两种类型的隐藏用户文件 . 一个是解决方案 .suo 文件,它是一个二进制文件 . 另一个是项目 .user 文件,它是一个文本文件 . 这些文件包含的确切数据是什么?
.suo
.user
我也一直想知道是否应该将这些文件添加到源代码控制中(在我的情况下是Subversion) . 如果我不添加这些文件而另一个开发人员检出解决方案,Visual Studio会自动创建新的用户文件吗?
.user是用户设置,我认为.suo是解决方案用户选项 . 您不希望这些文件受源代码控制;它们将为每个用户重新创建 .
不,你不应该将它们添加到源代码管理中,因为 - 如你所说 - 它们是用户特定的 .
SUO(解决方案用户选项):记录您可能与解决方案关联的所有选项,以便每次打开它时,它都包含您所做的自定义 .
.user文件包含项目的用户选项(而SUO用于解决方案)并扩展项目文件名(例如,anything.csproj.user包含anything.csproj项目的用户设置) .
您不需要添加这些 - 它们包含每个用户的设置,而其他开发人员则不需要您的副本 .
自从我在2011年通过Google发现这个问题/答案以来,我想我会花一点时间将Visual Studio 2010创建的* .SDF文件的链接添加到可能不应添加到版本控制的文件列表中( IDE将重新创建它们) . 由于我不确定* .sdf文件是否可能在其他地方合法使用,我只忽略了SVN中的特定[projectname] .sdf文件 .
Why does the Visual Studio conversion wizard 2010 create a massive SDF database file?
这些文件包含通常特定于您的计算机的用户首选项配置,因此最好不要将其放在SCM中 . 此外,VS几乎每次执行时都会更改它,因此SCM始终将其标记为“已更改” . 我也不包括,我在使用VS 2年的项目中并没有遇到任何问题 . 唯一的小麻烦是调试参数(执行路径,部署目标等)存储在其中一个文件中(不知道哪个),所以如果你有一个标准,你将无法'通过SCM发布它,让其他开发人员将整个开发环境“随时可用” .
这似乎是微软对此事的看法:
Adding (and editing) .suo files to source control
我不知道为什么你的项目将DebuggingWorkingDirectory存储在suo文件中 . 如果这是特定于用户的设置,则应考虑将其存储在* .proj.user文件名中 . 如果该设置在项目的所有用户之间可共享,则应考虑将其存储在项目文件中 . 甚至不想将suo文件添加到源代码管理中! SUO(soluton用户选项)文件旨在包含特定于用户的设置,不应在使用同一解决方案的用户之间共享 . 如果你要在scc数据库中添加suo文件,我不知道IDE中你还有什么其他的东西,但从源代码管理的角度来看,你将破坏web项目的scc集成,使用Lan vs Internet插件由不同的用户进行VSS访问,甚至可能导致scc完全中断(存储在suo文件中的VSS数据库路径可能对其他用户有效) . 艾琳·康斯坦丁(MSFT)
在MSDN website,它明确指出
解决方案用户选项(.suo)文件包含每用户解决方案选项 . 不应将此文件签入源代码控制 .
所以我会说在检查源代码控制的东西时忽略这些文件是相当安全的 .
它们包含有关项目的特定设置,这些设置通常分配给单个开发人员(例如,在调试应用程序时启动的起始项目和起始页) .
因此最好不要将它们添加到版本控制中,让VS重新创建它们,以便每个开发人员都可以拥有他们想要的特定设置 .
其他人已经解释了为什么在源代码控制下使用 *.suo 和 *.user 文件并不是一个好主意 .
*.suo
*.user
我想建议你将这些模式添加到 svn:ignore 属性有两个原因:
svn:ignore
所以其他开发者赢得了't wind up with one developer'的设置 .
因此,当您查看状态或提交文件时,这些文件不会混淆代码库并模糊您需要添加的新文件 .
您无法对.user文件进行源代码控制,因为这是特定于用户的 . 它包含远程计算机的名称和其他依赖于用户的内容 . 这是一个vcproj相关文件 .
.suo文件是一个sln相关文件,它包含“解决方案用户选项”(启动项目,窗口位置(停靠的位置和位置,浮动的内容)等)
这是一个二进制文件,我不知道它是否包含“用户相关”的内容 .
在我们公司,我们不会将这些文件置于源代码管理之下 .
默认情况下Microsoft的Visual SourceSafe不在源代码管理中包含这些文件,因为它们是用户特定的设置文件 . 如果你使用SVN作为源代码控制,我会遵循该模型 .
Visual Studio将自动创建它们 . 我不建议将它们放在源代码管理中 . 很多时候,本地开发人员的SOU文件导致VS在开发人员盒子上表现不正常 . 删除文件然后让VS重新创建它总是修复问题 .
我不会 . 任何可能因“用户”而改变的东西在源代码控制中通常都不好 . .suo,.user,obj / bin目录
如果在 ProjectProperties>Debugging>Environment 中设置可执行目录依赖项,则路径存储在'.user'文件中 .
假设我在上面提到的字段中设置了这个字符串: "PATH=C:\xyz\bin" 这是它将如何存储在'.user'文件中:
<LocalDebuggerEnvironment>PATH=C:\xyz\bin$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>
在OpenCV工作期间,这对我们很有帮助 . 我们可以为不同的项目使用不同版本的OpenCV . 另一个优点是,在新机器上设置项目非常容易 . 我们只需要复制相应的依赖dirs . 所以对于某些项目,我更喜欢将'.user'添加到源代码控制中 .
尽管如此,它完全依赖于项目 . 您可以根据自己的需要拨打电话 .
我们不提交二进制文件(* .suo),但我们提交.user文件 . .user文件包含用于调试项目的启动选项 . 您可以在“调试”选项卡中找到项目属性中的启动选项 . 我们在一些项目中使用了NUnit,并将nunit-gui.exe配置为项目的启动选项 . 如果没有.user文件,每个团队成员都必须单独配置它 .
希望这可以帮助 .
这些文件是特定于用户的选项,应独立于解决方案本身 . Visual Studio将根据需要创建新的,因此不需要签入源代码控制 . 实际上,最好不要这样做,因为这允许个别开发人员根据自己的需要定制他们的环境 .
使用Rational ClearCase答案是否定的 . 只应在源代码控制中注册.sln& . * proj .
我不能回答其他供应商 . 如果我没记错的话,这些文件是“用户”特定选项,您的环境 .
Don't add any of those files into version control. 这些文件是自动生成的,具有工作站特定信息,如果签入版本控制将导致其他工作站出现问题 .
18 回答
.user是用户设置,我认为.suo是解决方案用户选项 . 您不希望这些文件受源代码控制;它们将为每个用户重新创建 .
不,你不应该将它们添加到源代码管理中,因为 - 如你所说 - 它们是用户特定的 .
.user文件包含项目的用户选项(而SUO用于解决方案)并扩展项目文件名(例如,anything.csproj.user包含anything.csproj项目的用户设置) .
您不需要添加这些 - 它们包含每个用户的设置,而其他开发人员则不需要您的副本 .
自从我在2011年通过Google发现这个问题/答案以来,我想我会花一点时间将Visual Studio 2010创建的* .SDF文件的链接添加到可能不应添加到版本控制的文件列表中( IDE将重新创建它们) . 由于我不确定* .sdf文件是否可能在其他地方合法使用,我只忽略了SVN中的特定[projectname] .sdf文件 .
Why does the Visual Studio conversion wizard 2010 create a massive SDF database file?
这些文件包含通常特定于您的计算机的用户首选项配置,因此最好不要将其放在SCM中 . 此外,VS几乎每次执行时都会更改它,因此SCM始终将其标记为“已更改” . 我也不包括,我在使用VS 2年的项目中并没有遇到任何问题 . 唯一的小麻烦是调试参数(执行路径,部署目标等)存储在其中一个文件中(不知道哪个),所以如果你有一个标准,你将无法'通过SCM发布它,让其他开发人员将整个开发环境“随时可用” .
这似乎是微软对此事的看法:
Adding (and editing) .suo files to source control
在MSDN website,它明确指出
所以我会说在检查源代码控制的东西时忽略这些文件是相当安全的 .
它们包含有关项目的特定设置,这些设置通常分配给单个开发人员(例如,在调试应用程序时启动的起始项目和起始页) .
因此最好不要将它们添加到版本控制中,让VS重新创建它们,以便每个开发人员都可以拥有他们想要的特定设置 .
其他人已经解释了为什么在源代码控制下使用
*.suo
和*.user
文件并不是一个好主意 .我想建议你将这些模式添加到
svn:ignore
属性有两个原因:所以其他开发者赢得了't wind up with one developer'的设置 .
因此,当您查看状态或提交文件时,这些文件不会混淆代码库并模糊您需要添加的新文件 .
您无法对.user文件进行源代码控制,因为这是特定于用户的 . 它包含远程计算机的名称和其他依赖于用户的内容 . 这是一个vcproj相关文件 .
.suo文件是一个sln相关文件,它包含“解决方案用户选项”(启动项目,窗口位置(停靠的位置和位置,浮动的内容)等)
这是一个二进制文件,我不知道它是否包含“用户相关”的内容 .
在我们公司,我们不会将这些文件置于源代码管理之下 .
默认情况下Microsoft的Visual SourceSafe不在源代码管理中包含这些文件,因为它们是用户特定的设置文件 . 如果你使用SVN作为源代码控制,我会遵循该模型 .
Visual Studio将自动创建它们 . 我不建议将它们放在源代码管理中 . 很多时候,本地开发人员的SOU文件导致VS在开发人员盒子上表现不正常 . 删除文件然后让VS重新创建它总是修复问题 .
我不会 . 任何可能因“用户”而改变的东西在源代码控制中通常都不好 . .suo,.user,obj / bin目录
如果在 ProjectProperties>Debugging>Environment 中设置可执行目录依赖项,则路径存储在'.user'文件中 .
假设我在上面提到的字段中设置了这个字符串: "PATH=C:\xyz\bin" 这是它将如何存储在'.user'文件中:
<LocalDebuggerEnvironment>PATH=C:\xyz\bin$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>
在OpenCV工作期间,这对我们很有帮助 . 我们可以为不同的项目使用不同版本的OpenCV . 另一个优点是,在新机器上设置项目非常容易 . 我们只需要复制相应的依赖dirs . 所以对于某些项目,我更喜欢将'.user'添加到源代码控制中 .
尽管如此,它完全依赖于项目 . 您可以根据自己的需要拨打电话 .
我们不提交二进制文件(* .suo),但我们提交.user文件 . .user文件包含用于调试项目的启动选项 . 您可以在“调试”选项卡中找到项目属性中的启动选项 . 我们在一些项目中使用了NUnit,并将nunit-gui.exe配置为项目的启动选项 . 如果没有.user文件,每个团队成员都必须单独配置它 .
希望这可以帮助 .
这些文件是特定于用户的选项,应独立于解决方案本身 . Visual Studio将根据需要创建新的,因此不需要签入源代码控制 . 实际上,最好不要这样做,因为这允许个别开发人员根据自己的需要定制他们的环境 .
使用Rational ClearCase答案是否定的 . 只应在源代码控制中注册.sln& . * proj .
我不能回答其他供应商 . 如果我没记错的话,这些文件是“用户”特定选项,您的环境 .
Don't add any of those files into version control. 这些文件是自动生成的,具有工作站特定信息,如果签入版本控制将导致其他工作站出现问题 .