Ben*_*lls 819 version-control visual-studio
Visual Studio解决方案包含两种类型的隐藏用户文件.一个是解决方案.suo文件,它是一个二进制文件.另一个是项目.user文件,它是一个文本文件.这些文件包含的确切数据是什么?
我也一直想知道是否应该将这些文件添加到源代码控制中(在我的情况下是Subversion).如果我不添加这些文件而另一个开发人员检出解决方案,Visual Studio会自动创建新的用户文件吗?
Fab*_*llo 658
这些文件包含通常特定于您的计算机的用户首选项配置,因此最好不要将其放在SCM中.此外,VS几乎每次执行时都会更改它,因此SCM始终将其标记为"已更改".我也不包括,我在使用VS 2年的项目中并没有遇到任何问题.唯一的小麻烦是调试参数(执行路径,部署目标等)存储在其中一个文件中(不知道哪个),所以如果你有一个标准,你将无法'通过SCM发布'它,让其他开发人员可以使整个开发环境"随时可用".
Ste*_*per 138
您无需添加这些内容 - 它们包含每个用户的设置,而其他开发人员则不需要您的副本.
JXG*_*JXG 69
其他人已经解释了为什么在源代码控制下使用*.suo和*.user文件并不是一个好主意.
我想建议您将这些模式添加到svn:ignore属性中有两个原因:
Tho*_*mas 49
我们不提交二进制文件(*.suo),但我们提交.user文件..user文件包含用于调试项目的启动选项.您可以在"调试"选项卡中找到项目属性中的启动选项.我们在一些项目中使用了NUnit,并将nunit-gui.exe配置为项目的启动选项.如果没有.user文件,每个团队成员都必须单独配置它.
希望这可以帮助.
Ste*_*hen 26
自从我在2011年通过Google发现这个问题/答案以来,我想我会花一点时间将Visual Studio 2010创建的*.SDF文件的链接添加到可能不应添加到版本控制的文件列表中( IDE将重新创建它们).由于我不确定*.sdf文件是否可能在其他地方合法使用,我只忽略了SVN中的特定[projectname] .sdf文件.
为什么Visual Studio转换向导2010会创建大量SDF数据库文件?
JRo*_*ert 23
不,你不应该将它们添加到源代码管理中,因为 - 如你所说 - 它们是用户特定的.
SUO(解决方案用户选项):记录您可能与解决方案关联的所有选项,以便每次打开它时,它都包含您所做的自定义.
.user文件包含项目的用户选项(而SUO用于解决方案)并扩展项目文件名(例如,anything.csproj.user包含anything.csproj项目的用户设置).
cor*_*ori 19
默认情况下,Microsoft的Visual SourceSafe不会在源代码管理中包含这些文件,因为它们是特定于用户的设置文件.如果您使用SVN作为源代码控制,我会遵循该模型.
Sco*_*t W 19
这似乎是微软对此事的看法:
我不知道为什么你的项目将DebuggingWorkingDirectory存储在suo文件中.如果这是特定于用户的设置,则应考虑将其存储在*.proj.user文件名中.如果该设置在项目的所有用户之间可共享,则应考虑将其存储在项目文件本身中.
甚至不要考虑将suo文件添加到源代码管理中!SUO(soluton用户选项)文件旨在包含特定于用户的设置,不应在使用同一解决方案的用户之间共享.如果你要在scc数据库中添加suo文件,我不知道IDE中你还有什么其他的东西,但是从源代码管理的角度来看你将破坏web项目scc集成,使用Lan vs Internet插件由不同的用户进行VSS访问,甚至可能导致scc完全中断(存储在suo文件中的VSS数据库路径可能对其他用户有效).
艾琳·康斯坦丁(MSFT)
Blo*_*und 12
Visual Studio将自动创建它们.我不建议将它们放在源代码管理中.很多时候,本地开发人员的SOU文件导致VS在开发人员框中表现不正常.删除文件然后让VS重新创建它总是修复问题.
这些文件是特定于用户的选项,应独立于解决方案本身.Visual Studio将根据需要创建新的,因此不需要签入源代码控制.事实上,最好不要这样做,因为这允许个别开发人员根据自己的需要定制他们的环境.
它们包含有关项目的特定设置,这些设置通常分配给单个开发人员(例如,在调试应用程序时启动的起始项目和起始页).
因此最好不要将它们添加到版本控制中,让VS重新创建它们,以便每个开发人员都可以拥有他们想要的特定设置.
您无法对.user文件进行源代码控制,因为这是用户特定的.它包含远程计算机的名称和其他依赖于用户的内容.这是一个vcproj相关文件.
.suo文件是一个sln相关文件,它包含"解决方案用户选项"(启动项目,窗口位置(停靠的位置和位置,浮动的内容)等)
这是一个二进制文件,我不知道它是否包含"用户相关"的内容.
在我们公司,我们不会将这些文件置于源代码管理之下.
其他人解释说不,你不希望在版本控制中使用它。您应该配置版本控制系统以忽略该文件(例如通过文件.gitignore)。
要真正理解原因,了解该文件中的实际内容会有所帮助。我编写了一个命令行工具,可以让您查看.suo文件的内容。
通过以下方式将其安装在您的计算机上:
dotnet tool install -g suo
Run Code Online (Sandbox Code Playgroud)
它有两个子命令,keys和view。
suo keys <path-to-suo-file>
Run Code Online (Sandbox Code Playgroud)
这将转储文件中每个值的键。例如(删节):
nuget
ProjInfoEx
BookmarkState
DebuggerWatches
HiddenSlnFolders
ObjMgrContentsV8
UnloadedProjects
ClassViewContents
OutliningStateDir
ProjExplorerState
TaskListShortcuts
XmlPackageOptions
BackgroundLoadData
DebuggerExceptions
DebuggerFindSource
DebuggerFindSymbol
ILSpy-234190A6EE66
MRU Solution Files
UnloadedProjectsEx
ApplicationInsights
DebuggerBreakpoints
OutliningStateV1674
...
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,许多 IDE 功能都使用此文件来存储其状态。
使用该view命令查看给定键的值。例如:
$ suo view nuget --format=utf8 .suo
nuget
?{"WindowSettings":{"project:MyProject":{"SourceRepository":"nuget.org","ShowPreviewWindow":false,"ShowDeprecatedFrameworkWindow":true,"RemoveDependencies":false,"ForceRemove":false,"IncludePrerelease":false,"SelectedFilter":"UpdatesAvailable","DependencyBehavior":"Lowest","FileConflictAction":"PromptUser","OptionsExpanded":false,"SortPropertyName":"ProjectName","SortDirection":"Ascending"}}}
Run Code Online (Sandbox Code Playgroud)
有关该工具的更多信息,请访问:https ://github.com/drewnoakes/suo
| 归档时间: |
|
| 查看次数: |
191200 次 |
| 最近记录: |