繁体   English   中英

为什么会有 .sln、.suo 和 .csproj 文件?

[英]Why are there .sln, .suo and .csproj files?

我开始使用Visual Studio 2010。在我完成C#程序后,我看到项目根目录中有.sln.suo文件,子目录中有一个.csproj文件。 那些文件是干什么用的?

我需要确定要放入 Git 存储库的文件。 连同我创建的源代码/文档,我想这三个文件是我唯一需要处理的文件。 但是,我不确定我是否正在跟踪正确的文件。

添加

个人宏文件呢? 我有Emacs 按键开关宏.sln文件或.csproj文件有这个宏吗?

您应该提交.sln.csproj ,但不.suo.user文件。

您可以将以下内容添加到.gitignore

#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.lib
*.sbr
obj/
[Rr]elease*/
_ReSharper*/
[Tt]est[Rr]esult*

SLN(解决方案)是解决方案文件。 它存储有关构成您正在开发的项目的项目集合的信息。 它们包含项目,源代码控制设置或任何其他全局级别的东西。

CSProj(项目文件)是实际的代码项目(C#Libraries,WCF Services等)。 它在项目级别存储信息。 它包含了所有相关的参考文献,Classess等。

SUO(解决方案用户选项)是用户设置文件。 完全一次性,你可以删除它,你将失去的最常见的事情是断点。


推送除SUO设置文件之外的所有内容。

不要包含任何bin,debug,obj目录。 您应该包含的唯一DLL(或编译/生成的对象)是应用程序外部的DLL。

来自MSDN:

解决方案(.sln)是用于在Visual Studio中组织项目的结构。 它执行类似于Visual Basic 6.0中的Windows程序组(.vbg)文件和Visual C ++ 6.0中的项目工作区(.dsw)文件的功能。 该解决方案维护.sln(基于文本,共享)和.suo(二进制,用户特定的解决方案选项)文件中项目的状态信息... [来源]

此外,还来自MSDN:

解决方案用户选项(.suo)文件是以二进制格式存储的结构化存储或复合文件。 您将用户信息保存到流中,流的名称是用于标识.suo文件中信息的密钥... [来源]

您不需要将.suo文件放在VCS中。 这是一个特定于用户的文件。

SUO文件确实有目的,我不同意应该始终忽略它们的说法。 我不会忽略它们,作为一般做法,我将它们添加到我们的SVN存储库中。 我的项目并不总是使用启动项目或平台的解决方案默认值。 我觉得很烦人,如果我抓住一个新项目,它不会默认为64位和适当的平台。 SUO包含正确设置这些默认值的设置。

这样做的缺点是它是一个二进制文件,所以每次打开解决方案并执行任何操作时文件都会发生变化。 通常文件小于100k,除非你知道你改变了什么,否则我不提交更改。

就我而言,我删除了解决方案和项目中的所有“bin”和“obj”文件夹

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM